home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / win32 / Tapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-08-08  |  146.7 KB  |  4,714 lines

  1. /*++ BUILD Version: 0000    // Increment this if a change has global effects
  2.  
  3. The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
  4. granted  a royalty free worldwide, unlimited license to make copies, and use
  5. the   API/SPI  for  making  applications/drivers  that  interface  with  the
  6. specification provided that this paragraph and the Intel/Microsoft copyright
  7. statement is maintained as is in the text and source code files.
  8.  
  9. Copyright 1995-96 Microsoft, all rights reserved.
  10. Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.
  11.  
  12. Module Name:
  13.  
  14.     tapi.h
  15.  
  16. Notes:
  17.  
  18.     Additions to the Telephony Application Programming Interface (TAPI) since
  19.     version 1.0 are noted by version number (e.g. "TAPI v1.4").
  20.  
  21. --*/
  22.  
  23. #ifndef TAPI_H
  24. #define TAPI_H
  25.  
  26.  
  27.  
  28. //
  29. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  30. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  31. //  -- TAPI VERSION INFO -- TAPI VERSION INFO -- TAPI VERSION INFO --
  32. //
  33. // To build  a TAPI 1.4 application put a define as below in your source
  34. // file before you include TAPI.H:
  35. //
  36. // #define TAPI_CURRENT_VERSION 0x00010004
  37. //
  38. //
  39. #ifndef TAPI_CURRENT_VERSION
  40. #define TAPI_CURRENT_VERSION 0x00020000
  41. #endif
  42.  
  43. #include <windows.h>
  44.  
  45. #pragma pack(1)
  46. // Type definitions of the data types used in tapi
  47.  
  48. #ifdef __cplusplus
  49. extern "C" {            /* Assume C declarations for C++ */
  50. #endif  /* __cplusplus */
  51.  
  52.  
  53. //
  54. // TAPI type definitions
  55. //
  56.  
  57. #define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
  58.                 typedef const struct name##__ FAR* name
  59.  
  60. DECLARE_OPAQUE32(HCALL);
  61. typedef HCALL FAR * LPHCALL;
  62.  
  63. DECLARE_OPAQUE32(HLINE);
  64. typedef HLINE FAR * LPHLINE;
  65.  
  66. DECLARE_OPAQUE32(HPHONE);
  67. typedef HPHONE FAR * LPHPHONE;
  68.  
  69. DECLARE_OPAQUE32(HLINEAPP);
  70. typedef HLINEAPP FAR * LPHLINEAPP;
  71.  
  72. DECLARE_OPAQUE32(HPHONEAPP);
  73. typedef HPHONEAPP FAR * LPHPHONEAPP;
  74.  
  75. typedef HICON FAR * LPHICON;
  76.  
  77. typedef void (CALLBACK * LINECALLBACK)(
  78.     DWORD               hDevice,
  79.     DWORD               dwMessage,
  80.     DWORD               dwInstance,
  81.     DWORD               dwParam1,
  82.     DWORD               dwParam2,
  83.     DWORD               dwParam3
  84.     );
  85.  
  86. typedef void (CALLBACK * PHONECALLBACK)(
  87.     DWORD               hDevice,
  88.     DWORD               dwMessage,
  89.     DWORD               dwInstance,
  90.     DWORD               dwParam1,
  91.     DWORD               dwParam2,
  92.     DWORD               dwParam3
  93.     );
  94.  
  95.  
  96. // Messages for Phones and Lines
  97.  
  98. #define LINE_ADDRESSSTATE                       0L
  99. #define LINE_CALLINFO                           1L
  100. #define LINE_CALLSTATE                          2L
  101. #define LINE_CLOSE                              3L
  102. #define LINE_DEVSPECIFIC                        4L
  103. #define LINE_DEVSPECIFICFEATURE                 5L
  104. #define LINE_GATHERDIGITS                       6L
  105. #define LINE_GENERATE                           7L
  106. #define LINE_LINEDEVSTATE                       8L
  107. #define LINE_MONITORDIGITS                      9L
  108. #define LINE_MONITORMEDIA                       10L
  109. #define LINE_MONITORTONE                        11L
  110. #define LINE_REPLY                              12L
  111. #define LINE_REQUEST                            13L
  112. #define PHONE_BUTTON                            14L
  113. #define PHONE_CLOSE                             15L
  114. #define PHONE_DEVSPECIFIC                       16L
  115. #define PHONE_REPLY                             17L
  116. #define PHONE_STATE                             18L
  117. #define LINE_CREATE                             19L             // TAPI v1.4
  118. #define PHONE_CREATE                            20L             // TAPI v1.4
  119.  
  120. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  121. #define LINE_AGENTSPECIFIC                      21L             // TAPI v2.0
  122. #define LINE_AGENTSTATUS                        22L             // TAPI v2.0
  123. #define LINE_APPNEWCALL                         23L             // TAPI v2.0
  124. #define LINE_PROXYREQUEST                       24L             // TAPI v2.0
  125. #define LINE_REMOVE                             25L             // TAPI v2.0
  126. #define PHONE_REMOVE                            26L             // TAPI v2.0
  127. #endif
  128.  
  129.  
  130. #define INITIALIZE_NEGOTIATION                  0xFFFFFFFFL
  131.  
  132. #define LINEADDRCAPFLAGS_FWDNUMRINGS            0x00000001
  133. #define LINEADDRCAPFLAGS_PICKUPGROUPID          0x00000002
  134. #define LINEADDRCAPFLAGS_SECURE                 0x00000004
  135. #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT         0x00000008
  136. #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE        0x00000010
  137. #define LINEADDRCAPFLAGS_DIALED                 0x00000020
  138. #define LINEADDRCAPFLAGS_ORIGOFFHOOK            0x00000040
  139. #define LINEADDRCAPFLAGS_DESTOFFHOOK            0x00000080
  140. #define LINEADDRCAPFLAGS_FWDCONSULT             0x00000100
  141. #define LINEADDRCAPFLAGS_SETUPCONFNULL          0x00000200
  142. #define LINEADDRCAPFLAGS_AUTORECONNECT          0x00000400
  143. #define LINEADDRCAPFLAGS_COMPLETIONID           0x00000800
  144. #define LINEADDRCAPFLAGS_TRANSFERHELD           0x00001000
  145. #define LINEADDRCAPFLAGS_TRANSFERMAKE           0x00002000
  146. #define LINEADDRCAPFLAGS_CONFERENCEHELD         0x00004000
  147. #define LINEADDRCAPFLAGS_CONFERENCEMAKE         0x00008000
  148. #define LINEADDRCAPFLAGS_PARTIALDIAL            0x00010000
  149. #define LINEADDRCAPFLAGS_FWDSTATUSVALID         0x00020000
  150. #define LINEADDRCAPFLAGS_FWDINTEXTADDR          0x00040000
  151. #define LINEADDRCAPFLAGS_FWDBUSYNAADDR          0x00080000
  152. #define LINEADDRCAPFLAGS_ACCEPTTOALERT          0x00100000
  153. #define LINEADDRCAPFLAGS_CONFDROP               0x00200000
  154. #define LINEADDRCAPFLAGS_PICKUPCALLWAIT         0x00400000
  155. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  156. #define LINEADDRCAPFLAGS_PREDICTIVEDIALER       0x00800000      // TAPI v2.0
  157. #define LINEADDRCAPFLAGS_QUEUE                  0x01000000      // TAPI v2.0
  158. #define LINEADDRCAPFLAGS_ROUTEPOINT             0x02000000      // TAPI v2.0
  159. #define LINEADDRCAPFLAGS_HOLDMAKESNEW           0x04000000      // TAPI v2.0
  160. #define LINEADDRCAPFLAGS_NOINTERNALCALLS        0x08000000      // TAPI v2.0
  161. #define LINEADDRCAPFLAGS_NOEXTERNALCALLS        0x10000000      // TAPI v2.0
  162. #define LINEADDRCAPFLAGS_SETCALLINGID           0x20000000      // TAPI v2.0
  163. #endif
  164.  
  165. #define LINEADDRESSMODE_ADDRESSID               0x00000001
  166. #define LINEADDRESSMODE_DIALABLEADDR            0x00000002
  167.  
  168. #define LINEADDRESSSHARING_PRIVATE              0x00000001
  169. #define LINEADDRESSSHARING_BRIDGEDEXCL          0x00000002
  170. #define LINEADDRESSSHARING_BRIDGEDNEW           0x00000004
  171. #define LINEADDRESSSHARING_BRIDGEDSHARED        0x00000008
  172. #define LINEADDRESSSHARING_MONITORED            0x00000010
  173.  
  174. #define LINEADDRESSSTATE_OTHER                  0x00000001
  175. #define LINEADDRESSSTATE_DEVSPECIFIC            0x00000002
  176. #define LINEADDRESSSTATE_INUSEZERO              0x00000004
  177. #define LINEADDRESSSTATE_INUSEONE               0x00000008
  178. #define LINEADDRESSSTATE_INUSEMANY              0x00000010
  179. #define LINEADDRESSSTATE_NUMCALLS               0x00000020
  180. #define LINEADDRESSSTATE_FORWARD                0x00000040
  181. #define LINEADDRESSSTATE_TERMINALS              0x00000080
  182. #define LINEADDRESSSTATE_CAPSCHANGE             0x00000100      // TAPI v1.4
  183.  
  184. #define LINEADDRFEATURE_FORWARD                 0x00000001
  185. #define LINEADDRFEATURE_MAKECALL                0x00000002
  186. #define LINEADDRFEATURE_PICKUP                  0x00000004
  187. #define LINEADDRFEATURE_SETMEDIACONTROL         0x00000008
  188. #define LINEADDRFEATURE_SETTERMINAL             0x00000010
  189. #define LINEADDRFEATURE_SETUPCONF               0x00000020
  190. #define LINEADDRFEATURE_UNCOMPLETECALL          0x00000040
  191. #define LINEADDRFEATURE_UNPARK                  0x00000080
  192. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  193. #define LINEADDRFEATURE_PICKUPHELD              0x00000100      // TAPI v2.0
  194. #define LINEADDRFEATURE_PICKUPGROUP             0x00000200      // TAPI v2.0
  195. #define LINEADDRFEATURE_PICKUPDIRECT            0x00000400      // TAPI v2.0
  196. #define LINEADDRFEATURE_PICKUPWAITING           0x00000800      // TAPI v2.0
  197. #define LINEADDRFEATURE_FORWARDFWD              0x00001000      // TAPI v2.0
  198. #define LINEADDRFEATURE_FORWARDDND              0x00002000      // TAPI v2.0
  199. #endif
  200.  
  201. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  202. #define LINEAGENTFEATURE_SETAGENTGROUP          0x00000001      // TAPI v2.0
  203. #define LINEAGENTFEATURE_SETAGENTSTATE          0x00000002      // TAPI v2.0
  204. #define LINEAGENTFEATURE_SETAGENTACTIVITY       0x00000004      // TAPI v2.0
  205. #define LINEAGENTFEATURE_AGENTSPECIFIC          0x00000008      // TAPI v2.0
  206. #define LINEAGENTFEATURE_GETAGENTACTIVITYLIST   0x00000010      // TAPI v2.0
  207. #define LINEAGENTFEATURE_GETAGENTGROUP          0x00000020      // TAPI v2.0
  208.  
  209. #define LINEAGENTSTATE_LOGGEDOFF                0x00000001      // TAPI v2.0
  210. #define LINEAGENTSTATE_NOTREADY                 0x00000002      // TAPI v2.0
  211. #define LINEAGENTSTATE_READY                    0x00000004      // TAPI v2.0
  212. #define LINEAGENTSTATE_BUSYACD                  0x00000008      // TAPI v2.0
  213. #define LINEAGENTSTATE_BUSYINCOMING             0x00000010      // TAPI v2.0
  214. #define LINEAGENTSTATE_BUSYOUTBOUND             0x00000020      // TAPI v2.0
  215. #define LINEAGENTSTATE_BUSYOTHER                0x00000040      // TAPI v2.0
  216. #define LINEAGENTSTATE_WORKINGAFTERCALL         0x00000080      // TAPI v2.0
  217. #define LINEAGENTSTATE_UNKNOWN                  0x00000100      // TAPI v2.0
  218. #define LINEAGENTSTATE_UNAVAIL                  0x00000200      // TAPI v2.0
  219.  
  220. #define LINEAGENTSTATUS_GROUP                   0x00000001      // TAPI v2.0
  221. #define LINEAGENTSTATUS_STATE                   0x00000002      // TAPI v2.0
  222. #define LINEAGENTSTATUS_NEXTSTATE               0x00000004      // TAPI v2.0
  223. #define LINEAGENTSTATUS_ACTIVITY                0x00000008      // TAPI v2.0
  224. #define LINEAGENTSTATUS_ACTIVITYLIST            0x00000010      // TAPI v2.0
  225. #define LINEAGENTSTATUS_GROUPLIST               0x00000020      // TAPI v2.0
  226. #define LINEAGENTSTATUS_CAPSCHANGE              0x00000040      // TAPI v2.0
  227. #define LINEAGENTSTATUS_VALIDSTATES             0x00000080      // TAPI v2.0
  228. #define LINEAGENTSTATUS_VALIDNEXTSTATES         0x00000100      // TAPI v2.0
  229. #endif
  230.  
  231.  
  232. #define LINEANSWERMODE_NONE                     0x00000001
  233. #define LINEANSWERMODE_DROP                     0x00000002
  234. #define LINEANSWERMODE_HOLD                     0x00000004
  235.  
  236. #define LINEBEARERMODE_VOICE                    0x00000001
  237. #define LINEBEARERMODE_SPEECH                   0x00000002
  238. #define LINEBEARERMODE_MULTIUSE                 0x00000004
  239. #define LINEBEARERMODE_DATA                     0x00000008
  240. #define LINEBEARERMODE_ALTSPEECHDATA            0x00000010
  241. #define LINEBEARERMODE_NONCALLSIGNALING         0x00000020
  242. #define LINEBEARERMODE_PASSTHROUGH              0x00000040      // TAPI v1.4
  243. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  244. #define LINEBEARERMODE_RESTRICTEDDATA           0x00000080      // TAPI v2.0
  245. #endif
  246.  
  247. #define LINEBUSYMODE_STATION                    0x00000001
  248. #define LINEBUSYMODE_TRUNK                      0x00000002
  249. #define LINEBUSYMODE_UNKNOWN                    0x00000004
  250. #define LINEBUSYMODE_UNAVAIL                    0x00000008
  251.  
  252. #define LINECALLCOMPLCOND_BUSY                  0x00000001
  253. #define LINECALLCOMPLCOND_NOANSWER              0x00000002
  254.  
  255. #define LINECALLCOMPLMODE_CAMPON                0x00000001
  256. #define LINECALLCOMPLMODE_CALLBACK              0x00000002
  257. #define LINECALLCOMPLMODE_INTRUDE               0x00000004
  258. #define LINECALLCOMPLMODE_MESSAGE               0x00000008
  259.  
  260. #define LINECALLFEATURE_ACCEPT                  0x00000001
  261. #define LINECALLFEATURE_ADDTOCONF               0x00000002
  262. #define LINECALLFEATURE_ANSWER                  0x00000004
  263. #define LINECALLFEATURE_BLINDTRANSFER           0x00000008
  264. #define LINECALLFEATURE_COMPLETECALL            0x00000010
  265. #define LINECALLFEATURE_COMPLETETRANSF          0x00000020
  266. #define LINECALLFEATURE_DIAL                    0x00000040
  267. #define LINECALLFEATURE_DROP                    0x00000080
  268. #define LINECALLFEATURE_GATHERDIGITS            0x00000100
  269. #define LINECALLFEATURE_GENERATEDIGITS          0x00000200
  270. #define LINECALLFEATURE_GENERATETONE            0x00000400
  271. #define LINECALLFEATURE_HOLD                    0x00000800
  272. #define LINECALLFEATURE_MONITORDIGITS           0x00001000
  273. #define LINECALLFEATURE_MONITORMEDIA            0x00002000
  274. #define LINECALLFEATURE_MONITORTONES            0x00004000
  275. #define LINECALLFEATURE_PARK                    0x00008000
  276. #define LINECALLFEATURE_PREPAREADDCONF          0x00010000
  277. #define LINECALLFEATURE_REDIRECT                0x00020000
  278. #define LINECALLFEATURE_REMOVEFROMCONF          0x00040000
  279. #define LINECALLFEATURE_SECURECALL              0x00080000
  280. #define LINECALLFEATURE_SENDUSERUSER            0x00100000
  281. #define LINECALLFEATURE_SETCALLPARAMS           0x00200000
  282. #define LINECALLFEATURE_SETMEDIACONTROL         0x00400000
  283. #define LINECALLFEATURE_SETTERMINAL             0x00800000
  284. #define LINECALLFEATURE_SETUPCONF               0x01000000
  285. #define LINECALLFEATURE_SETUPTRANSFER           0x02000000
  286. #define LINECALLFEATURE_SWAPHOLD                0x04000000
  287. #define LINECALLFEATURE_UNHOLD                  0x08000000
  288. #define LINECALLFEATURE_RELEASEUSERUSERINFO     0x10000000      // TAPI v1.4
  289. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  290. #define LINECALLFEATURE_SETTREATMENT            0x20000000      // TAPI v2.0
  291. #define LINECALLFEATURE_SETQOS                  0x40000000      // TAPI v2.0
  292. #define LINECALLFEATURE_SETCALLDATA             0x80000000      // TAPI v2.0
  293. #endif
  294.  
  295. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  296. #define LINECALLFEATURE2_NOHOLDCONFERENCE       0x00000001      // TAPI v2.0
  297. #define LINECALLFEATURE2_ONESTEPTRANSFER        0x00000002      // TAPI v2.0
  298. #define LINECALLFEATURE2_COMPLCAMPON            0x00000004      // TAPI v2.0
  299. #define LINECALLFEATURE2_COMPLCALLBACK          0x00000008      // TAPI v2.0
  300. #define LINECALLFEATURE2_COMPLINTRUDE           0x00000010      // TAPI v2.0
  301. #define LINECALLFEATURE2_COMPLMESSAGE           0x00000020      // TAPI v2.0
  302. #define LINECALLFEATURE2_TRANSFERNORM           0x00000040      // TAPI v2.0
  303. #define LINECALLFEATURE2_TRANSFERCONF           0x00000080      // TAPI v2.0
  304. #define LINECALLFEATURE2_PARKDIRECT             0x00000100      // TAPI v2.0
  305. #define LINECALLFEATURE2_PARKNONDIRECT          0x00000200      // TAPI v2.0
  306. #endif
  307.  
  308. #define LINECALLINFOSTATE_OTHER                 0x00000001
  309. #define LINECALLINFOSTATE_DEVSPECIFIC           0x00000002
  310. #define LINECALLINFOSTATE_BEARERMODE            0x00000004
  311. #define LINECALLINFOSTATE_RATE                  0x00000008
  312. #define LINECALLINFOSTATE_MEDIAMODE             0x00000010
  313. #define LINECALLINFOSTATE_APPSPECIFIC           0x00000020
  314. #define LINECALLINFOSTATE_CALLID                0x00000040
  315. #define LINECALLINFOSTATE_RELATEDCALLID         0x00000080
  316. #define LINECALLINFOSTATE_ORIGIN                0x00000100
  317. #define LINECALLINFOSTATE_REASON                0x00000200
  318. #define LINECALLINFOSTATE_COMPLETIONID          0x00000400
  319. #define LINECALLINFOSTATE_NUMOWNERINCR          0x00000800
  320. #define LINECALLINFOSTATE_NUMOWNERDECR          0x00001000
  321. #define LINECALLINFOSTATE_NUMMONITORS           0x00002000
  322. #define LINECALLINFOSTATE_TRUNK                 0x00004000
  323. #define LINECALLINFOSTATE_CALLERID              0x00008000
  324. #define LINECALLINFOSTATE_CALLEDID              0x00010000
  325. #define LINECALLINFOSTATE_CONNECTEDID           0x00020000
  326. #define LINECALLINFOSTATE_REDIRECTIONID         0x00040000
  327. #define LINECALLINFOSTATE_REDIRECTINGID         0x00080000
  328. #define LINECALLINFOSTATE_DISPLAY               0x00100000
  329. #define LINECALLINFOSTATE_USERUSERINFO          0x00200000
  330. #define LINECALLINFOSTATE_HIGHLEVELCOMP         0x00400000
  331. #define LINECALLINFOSTATE_LOWLEVELCOMP          0x00800000
  332. #define LINECALLINFOSTATE_CHARGINGINFO          0x01000000
  333. #define LINECALLINFOSTATE_TERMINAL              0x02000000
  334. #define LINECALLINFOSTATE_DIALPARAMS            0x04000000
  335. #define LINECALLINFOSTATE_MONITORMODES          0x08000000
  336. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  337. #define LINECALLINFOSTATE_TREATMENT             0x10000000      // TAPI v2.0
  338. #define LINECALLINFOSTATE_QOS                   0x20000000      // TAPI v2.0
  339. #define LINECALLINFOSTATE_CALLDATA              0x40000000      // TAPI v2.0
  340. #endif
  341.  
  342. #define LINECALLORIGIN_OUTBOUND                 0x00000001
  343. #define LINECALLORIGIN_INTERNAL                 0x00000002
  344. #define LINECALLORIGIN_EXTERNAL                 0x00000004
  345. #define LINECALLORIGIN_UNKNOWN                  0x00000010
  346. #define LINECALLORIGIN_UNAVAIL                  0x00000020
  347. #define LINECALLORIGIN_CONFERENCE               0x00000040
  348. #define LINECALLORIGIN_INBOUND                  0x00000080      // TAPI v1.4
  349.  
  350. #define LINECALLPARAMFLAGS_SECURE               0x00000001
  351. #define LINECALLPARAMFLAGS_IDLE                 0x00000002
  352. #define LINECALLPARAMFLAGS_BLOCKID              0x00000004
  353. #define LINECALLPARAMFLAGS_ORIGOFFHOOK          0x00000008
  354. #define LINECALLPARAMFLAGS_DESTOFFHOOK          0x00000010
  355. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  356. #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE     0x00000020      // TAPI v2.0
  357. #define LINECALLPARAMFLAGS_PREDICTIVEDIAL       0x00000040      // TAPI v2.0
  358. #define LINECALLPARAMFLAGS_ONESTEPTRANSFER      0x00000080      // TAPI v2.0
  359. #endif
  360.  
  361. #define LINECALLPARTYID_BLOCKED                 0x00000001
  362. #define LINECALLPARTYID_OUTOFAREA               0x00000002
  363. #define LINECALLPARTYID_NAME                    0x00000004
  364. #define LINECALLPARTYID_ADDRESS                 0x00000008
  365. #define LINECALLPARTYID_PARTIAL                 0x00000010
  366. #define LINECALLPARTYID_UNKNOWN                 0x00000020
  367. #define LINECALLPARTYID_UNAVAIL                 0x00000040
  368.  
  369. #define LINECALLPRIVILEGE_NONE                  0x00000001
  370. #define LINECALLPRIVILEGE_MONITOR               0x00000002
  371. #define LINECALLPRIVILEGE_OWNER                 0x00000004
  372.  
  373. #define LINECALLREASON_DIRECT                   0x00000001
  374. #define LINECALLREASON_FWDBUSY                  0x00000002
  375. #define LINECALLREASON_FWDNOANSWER              0x00000004
  376. #define LINECALLREASON_FWDUNCOND                0x00000008
  377. #define LINECALLREASON_PICKUP                   0x00000010
  378. #define LINECALLREASON_UNPARK                   0x00000020
  379. #define LINECALLREASON_REDIRECT                 0x00000040
  380. #define LINECALLREASON_CALLCOMPLETION           0x00000080
  381. #define LINECALLREASON_TRANSFER                 0x00000100
  382. #define LINECALLREASON_REMINDER                 0x00000200
  383. #define LINECALLREASON_UNKNOWN                  0x00000400
  384. #define LINECALLREASON_UNAVAIL                  0x00000800
  385. #define LINECALLREASON_INTRUDE                  0x00001000      // TAPI v1.4
  386. #define LINECALLREASON_PARKED                   0x00002000      // TAPI v1.4
  387. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  388. #define LINECALLREASON_CAMPEDON                 0x00004000      // TAPI v2.0
  389. #define LINECALLREASON_ROUTEREQUEST             0x00008000      // TAPI v2.0
  390. #endif
  391.  
  392. #define LINECALLSELECT_LINE                     0x00000001
  393. #define LINECALLSELECT_ADDRESS                  0x00000002
  394. #define LINECALLSELECT_CALL                     0x00000004
  395.  
  396. #define LINECALLSTATE_IDLE                      0x00000001
  397. #define LINECALLSTATE_OFFERING                  0x00000002
  398. #define LINECALLSTATE_ACCEPTED                  0x00000004
  399. #define LINECALLSTATE_DIALTONE                  0x00000008
  400. #define LINECALLSTATE_DIALING                   0x00000010
  401. #define LINECALLSTATE_RINGBACK                  0x00000020
  402. #define LINECALLSTATE_BUSY                      0x00000040
  403. #define LINECALLSTATE_SPECIALINFO               0x00000080
  404. #define LINECALLSTATE_CONNECTED                 0x00000100
  405. #define LINECALLSTATE_PROCEEDING                0x00000200
  406. #define LINECALLSTATE_ONHOLD                    0x00000400
  407. #define LINECALLSTATE_CONFERENCED               0x00000800
  408. #define LINECALLSTATE_ONHOLDPENDCONF            0x00001000
  409. #define LINECALLSTATE_ONHOLDPENDTRANSFER        0x00002000
  410. #define LINECALLSTATE_DISCONNECTED              0x00004000
  411. #define LINECALLSTATE_UNKNOWN                   0x00008000
  412.  
  413. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  414. #define LINECALLTREATMENT_SILENCE               0x00000001      // TAPI v2.0
  415. #define LINECALLTREATMENT_RINGBACK              0x00000002      // TAPI v2.0
  416. #define LINECALLTREATMENT_BUSY                  0x00000003      // TAPI v2.0
  417. #define LINECALLTREATMENT_MUSIC                 0x00000004      // TAPI v2.0
  418. #endif
  419.  
  420. #define LINECARDOPTION_PREDEFINED               0x00000001      // TAPI v1.4
  421. #define LINECARDOPTION_HIDDEN                   0x00000002      // TAPI v1.4
  422.  
  423. #define LINECONNECTEDMODE_ACTIVE                0x00000001      // TAPI v1.4
  424. #define LINECONNECTEDMODE_INACTIVE              0x00000002      // TAPI v1.4
  425. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  426. #define LINECONNECTEDMODE_ACTIVEHELD            0x00000004      // TAPI v2.0
  427. #define LINECONNECTEDMODE_INACTIVEHELD          0x00000008      // TAPI v2.0
  428. #define LINECONNECTEDMODE_CONFIRMED             0x00000010      // TAPI v2.0
  429. #endif
  430.  
  431. #define LINEDEVCAPFLAGS_CROSSADDRCONF           0x00000001
  432. #define LINEDEVCAPFLAGS_HIGHLEVCOMP             0x00000002
  433. #define LINEDEVCAPFLAGS_LOWLEVCOMP              0x00000004
  434. #define LINEDEVCAPFLAGS_MEDIACONTROL            0x00000008
  435. #define LINEDEVCAPFLAGS_MULTIPLEADDR            0x00000010
  436. #define LINEDEVCAPFLAGS_CLOSEDROP               0x00000020
  437. #define LINEDEVCAPFLAGS_DIALBILLING             0x00000040
  438. #define LINEDEVCAPFLAGS_DIALQUIET               0x00000080
  439. #define LINEDEVCAPFLAGS_DIALDIALTONE            0x00000100
  440.  
  441. #define LINEDEVSTATE_OTHER                      0x00000001
  442. #define LINEDEVSTATE_RINGING                    0x00000002
  443. #define LINEDEVSTATE_CONNECTED                  0x00000004
  444. #define LINEDEVSTATE_DISCONNECTED               0x00000008
  445. #define LINEDEVSTATE_MSGWAITON                  0x00000010
  446. #define LINEDEVSTATE_MSGWAITOFF                 0x00000020
  447. #define LINEDEVSTATE_INSERVICE                  0x00000040
  448. #define LINEDEVSTATE_OUTOFSERVICE               0x00000080
  449. #define LINEDEVSTATE_MAINTENANCE                0x00000100
  450. #define LINEDEVSTATE_OPEN                       0x00000200
  451. #define LINEDEVSTATE_CLOSE                      0x00000400
  452. #define LINEDEVSTATE_NUMCALLS                   0x00000800
  453. #define LINEDEVSTATE_NUMCOMPLETIONS             0x00001000
  454. #define LINEDEVSTATE_TERMINALS                  0x00002000
  455. #define LINEDEVSTATE_ROAMMODE                   0x00004000
  456. #define LINEDEVSTATE_BATTERY                    0x00008000
  457. #define LINEDEVSTATE_SIGNAL                     0x00010000
  458. #define LINEDEVSTATE_DEVSPECIFIC                0x00020000
  459. #define LINEDEVSTATE_REINIT                     0x00040000
  460. #define LINEDEVSTATE_LOCK                       0x00080000
  461. #define LINEDEVSTATE_CAPSCHANGE                 0x00100000      // TAPI v1.4
  462. #define LINEDEVSTATE_CONFIGCHANGE               0x00200000      // TAPI v1.4
  463. #define LINEDEVSTATE_TRANSLATECHANGE            0x00400000      // TAPI v1.4
  464. #define LINEDEVSTATE_COMPLCANCEL                0x00800000      // TAPI v1.4
  465. #define LINEDEVSTATE_REMOVED                    0x01000000      // TAPI v1.4
  466.  
  467. #define LINEDEVSTATUSFLAGS_CONNECTED            0x00000001
  468. #define LINEDEVSTATUSFLAGS_MSGWAIT              0x00000002
  469. #define LINEDEVSTATUSFLAGS_INSERVICE            0x00000004
  470. #define LINEDEVSTATUSFLAGS_LOCKED               0x00000008
  471.  
  472. #define LINEDIALTONEMODE_NORMAL                 0x00000001
  473. #define LINEDIALTONEMODE_SPECIAL                0x00000002
  474. #define LINEDIALTONEMODE_INTERNAL               0x00000004
  475. #define LINEDIALTONEMODE_EXTERNAL               0x00000008
  476. #define LINEDIALTONEMODE_UNKNOWN                0x00000010
  477. #define LINEDIALTONEMODE_UNAVAIL                0x00000020
  478.     
  479. #define LINEDIGITMODE_PULSE                     0x00000001
  480. #define LINEDIGITMODE_DTMF                      0x00000002
  481. #define LINEDIGITMODE_DTMFEND                   0x00000004
  482.     
  483. #define LINEDISCONNECTMODE_NORMAL               0x00000001
  484. #define LINEDISCONNECTMODE_UNKNOWN              0x00000002
  485. #define LINEDISCONNECTMODE_REJECT               0x00000004
  486. #define LINEDISCONNECTMODE_PICKUP               0x00000008
  487. #define LINEDISCONNECTMODE_FORWARDED            0x00000010
  488. #define LINEDISCONNECTMODE_BUSY                 0x00000020
  489. #define LINEDISCONNECTMODE_NOANSWER             0x00000040
  490. #define LINEDISCONNECTMODE_BADADDRESS           0x00000080
  491. #define LINEDISCONNECTMODE_UNREACHABLE          0x00000100
  492. #define LINEDISCONNECTMODE_CONGESTION           0x00000200
  493. #define LINEDISCONNECTMODE_INCOMPATIBLE         0x00000400
  494. #define LINEDISCONNECTMODE_UNAVAIL              0x00000800
  495. #define LINEDISCONNECTMODE_NODIALTONE           0x00001000      // TAPI v1.4
  496. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  497. #define LINEDISCONNECTMODE_NUMBERCHANGED        0x00002000      // TAPI v2.0
  498. #define LINEDISCONNECTMODE_OUTOFORDER           0x00004000      // TAPI v2.0
  499. #define LINEDISCONNECTMODE_TEMPFAILURE          0x00008000      // TAPI v2.0
  500. #define LINEDISCONNECTMODE_QOSUNAVAIL           0x00010000      // TAPI v2.0
  501. #define LINEDISCONNECTMODE_BLOCKED              0x00020000      // TAPI v2.0
  502. #define LINEDISCONNECTMODE_DONOTDISTURB         0x00040000      // TAPI v2.0
  503. #define LINEDISCONNECTMODE_CANCELLED            0x00080000      // TAPI v2.0
  504. #endif
  505.  
  506. #define LINEERR_ALLOCATED                       0x80000001
  507. #define LINEERR_BADDEVICEID                     0x80000002
  508. #define LINEERR_BEARERMODEUNAVAIL               0x80000003
  509. #define LINEERR_CALLUNAVAIL                     0x80000005
  510. #define LINEERR_COMPLETIONOVERRUN               0x80000006
  511. #define LINEERR_CONFERENCEFULL                  0x80000007
  512. #define LINEERR_DIALBILLING                     0x80000008
  513. #define LINEERR_DIALDIALTONE                    0x80000009
  514. #define LINEERR_DIALPROMPT                      0x8000000A
  515. #define LINEERR_DIALQUIET                       0x8000000B
  516. #define LINEERR_INCOMPATIBLEAPIVERSION          0x8000000C
  517. #define LINEERR_INCOMPATIBLEEXTVERSION          0x8000000D
  518. #define LINEERR_INIFILECORRUPT                  0x8000000E
  519. #define LINEERR_INUSE                           0x8000000F
  520. #define LINEERR_INVALADDRESS                    0x80000010
  521. #define LINEERR_INVALADDRESSID                  0x80000011
  522. #define LINEERR_INVALADDRESSMODE                0x80000012
  523. #define LINEERR_INVALADDRESSSTATE               0x80000013
  524. #define LINEERR_INVALAPPHANDLE                  0x80000014
  525. #define LINEERR_INVALAPPNAME                    0x80000015
  526. #define LINEERR_INVALBEARERMODE                 0x80000016
  527. #define LINEERR_INVALCALLCOMPLMODE              0x80000017
  528. #define LINEERR_INVALCALLHANDLE                 0x80000018
  529. #define LINEERR_INVALCALLPARAMS                 0x80000019
  530. #define LINEERR_INVALCALLPRIVILEGE              0x8000001A
  531. #define LINEERR_INVALCALLSELECT                 0x8000001B
  532. #define LINEERR_INVALCALLSTATE                  0x8000001C
  533. #define LINEERR_INVALCALLSTATELIST              0x8000001D
  534. #define LINEERR_INVALCARD                       0x8000001E
  535. #define LINEERR_INVALCOMPLETIONID               0x8000001F
  536. #define LINEERR_INVALCONFCALLHANDLE             0x80000020
  537. #define LINEERR_INVALCONSULTCALLHANDLE          0x80000021
  538. #define LINEERR_INVALCOUNTRYCODE                0x80000022
  539. #define LINEERR_INVALDEVICECLASS                0x80000023
  540. #define LINEERR_INVALDEVICEHANDLE               0x80000024
  541. #define LINEERR_INVALDIALPARAMS                 0x80000025
  542. #define LINEERR_INVALDIGITLIST                  0x80000026
  543. #define LINEERR_INVALDIGITMODE                  0x80000027
  544. #define LINEERR_INVALDIGITS                     0x80000028
  545. #define LINEERR_INVALEXTVERSION                 0x80000029
  546. #define LINEERR_INVALGROUPID                    0x8000002A
  547. #define LINEERR_INVALLINEHANDLE                 0x8000002B
  548. #define LINEERR_INVALLINESTATE                  0x8000002C
  549. #define LINEERR_INVALLOCATION                   0x8000002D
  550. #define LINEERR_INVALMEDIALIST                  0x8000002E
  551. #define LINEERR_INVALMEDIAMODE                  0x8000002F
  552. #define LINEERR_INVALMESSAGEID                  0x80000030
  553. #define LINEERR_INVALPARAM                      0x80000032
  554. #define LINEERR_INVALPARKID                     0x80000033
  555. #define LINEERR_INVALPARKMODE                   0x80000034
  556. #define LINEERR_INVALPOINTER                    0x80000035
  557. #define LINEERR_INVALPRIVSELECT                 0x80000036
  558. #define LINEERR_INVALRATE                       0x80000037
  559. #define LINEERR_INVALREQUESTMODE                0x80000038
  560. #define LINEERR_INVALTERMINALID                 0x80000039
  561. #define LINEERR_INVALTERMINALMODE               0x8000003A
  562. #define LINEERR_INVALTIMEOUT                    0x8000003B
  563. #define LINEERR_INVALTONE                       0x8000003C
  564. #define LINEERR_INVALTONELIST                   0x8000003D
  565. #define LINEERR_INVALTONEMODE                   0x8000003E
  566. #define LINEERR_INVALTRANSFERMODE               0x8000003F
  567. #define LINEERR_LINEMAPPERFAILED                0x80000040
  568. #define LINEERR_NOCONFERENCE                    0x80000041
  569. #define LINEERR_NODEVICE                        0x80000042
  570. #define LINEERR_NODRIVER                        0x80000043
  571. #define LINEERR_NOMEM                           0x80000044
  572. #define LINEERR_NOREQUEST                       0x80000045
  573. #define LINEERR_NOTOWNER                        0x80000046
  574. #define LINEERR_NOTREGISTERED                   0x80000047
  575. #define LINEERR_OPERATIONFAILED                 0x80000048
  576. #define LINEERR_OPERATIONUNAVAIL                0x80000049
  577. #define LINEERR_RATEUNAVAIL                     0x8000004A
  578. #define LINEERR_RESOURCEUNAVAIL                 0x8000004B
  579. #define LINEERR_REQUESTOVERRUN                  0x8000004C
  580. #define LINEERR_STRUCTURETOOSMALL               0x8000004D
  581. #define LINEERR_TARGETNOTFOUND                  0x8000004E
  582. #define LINEERR_TARGETSELF                      0x8000004F
  583. #define LINEERR_UNINITIALIZED                   0x80000050
  584. #define LINEERR_USERUSERINFOTOOBIG              0x80000051
  585. #define LINEERR_REINIT                          0x80000052
  586. #define LINEERR_ADDRESSBLOCKED                  0x80000053
  587. #define LINEERR_BILLINGREJECTED                 0x80000054
  588. #define LINEERR_INVALFEATURE                    0x80000055
  589. #define LINEERR_NOMULTIPLEINSTANCE              0x80000056
  590. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  591. #define LINEERR_INVALAGENTID                    0x80000057      // TAPI v2.0
  592. #define LINEERR_INVALAGENTGROUP                 0x80000058      // TAPI v2.0
  593. #define LINEERR_INVALPASSWORD                   0x80000059      // TAPI v2.0
  594. #define LINEERR_INVALAGENTSTATE                 0x8000005A      // TAPI v2.0
  595. #define LINEERR_INVALAGENTACTIVITY              0x8000005B      // TAPI v2.0
  596. #define LINEERR_DIALVOICEDETECT                 0x8000005C      // TAPI v2.0
  597.  
  598.  
  599. #endif
  600.  
  601. #define LINEFEATURE_DEVSPECIFIC                 0x00000001
  602. #define LINEFEATURE_DEVSPECIFICFEAT             0x00000002
  603. #define LINEFEATURE_FORWARD                     0x00000004
  604. #define LINEFEATURE_MAKECALL                    0x00000008
  605. #define LINEFEATURE_SETMEDIACONTROL             0x00000010
  606. #define LINEFEATURE_SETTERMINAL                 0x00000020
  607. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  608. #define LINEFEATURE_SETDEVSTATUS                0x00000040      // TAPI v2.0
  609. #define LINEFEATURE_FORWARDFWD                  0x00000080      // TAPI v2.0
  610. #define LINEFEATURE_FORWARDDND                  0x00000100      // TAPI v2.0
  611. #endif
  612.  
  613. #define LINEFORWARDMODE_UNCOND                  0x00000001
  614. #define LINEFORWARDMODE_UNCONDINTERNAL          0x00000002
  615. #define LINEFORWARDMODE_UNCONDEXTERNAL          0x00000004
  616. #define LINEFORWARDMODE_UNCONDSPECIFIC          0x00000008
  617. #define LINEFORWARDMODE_BUSY                    0x00000010
  618. #define LINEFORWARDMODE_BUSYINTERNAL            0x00000020
  619. #define LINEFORWARDMODE_BUSYEXTERNAL            0x00000040
  620. #define LINEFORWARDMODE_BUSYSPECIFIC            0x00000080
  621. #define LINEFORWARDMODE_NOANSW                  0x00000100
  622. #define LINEFORWARDMODE_NOANSWINTERNAL          0x00000200
  623. #define LINEFORWARDMODE_NOANSWEXTERNAL          0x00000400
  624. #define LINEFORWARDMODE_NOANSWSPECIFIC          0x00000800
  625. #define LINEFORWARDMODE_BUSYNA                  0x00001000
  626. #define LINEFORWARDMODE_BUSYNAINTERNAL          0x00002000
  627. #define LINEFORWARDMODE_BUSYNAEXTERNAL          0x00004000
  628. #define LINEFORWARDMODE_BUSYNASPECIFIC          0x00008000
  629. #define LINEFORWARDMODE_UNKNOWN                 0x00010000      // TAPI v1.4
  630. #define LINEFORWARDMODE_UNAVAIL                 0x00020000      // TAPI v1.4
  631.  
  632. #define LINEGATHERTERM_BUFFERFULL               0x00000001
  633. #define LINEGATHERTERM_TERMDIGIT                0x00000002
  634. #define LINEGATHERTERM_FIRSTTIMEOUT             0x00000004
  635. #define LINEGATHERTERM_INTERTIMEOUT             0x00000008
  636. #define LINEGATHERTERM_CANCEL                   0x00000010
  637.  
  638. #define LINEGENERATETERM_DONE                   0x00000001
  639. #define LINEGENERATETERM_CANCEL                 0x00000002
  640.  
  641. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  642. //
  643. // These constants are mutually exclusive - there's no way to specify more
  644. // than one at a time (and it doesn't make sense, either) so they're
  645. // ordinal rather than bits.
  646. //
  647. #define LINEINITIALIZEEXOPTION_USEHIDDENWINDOW      0x00000001  // TAPI v2.0
  648. #define LINEINITIALIZEEXOPTION_USEEVENT             0x00000002  // TAPI v2.0
  649. #define LINEINITIALIZEEXOPTION_USECOMPLETIONPORT    0x00000003  // TAPI v2.0
  650. #endif
  651.  
  652. #define LINELOCATIONOPTION_PULSEDIAL            0x00000001      // TAPI v1.4
  653.  
  654. #define LINEMAPPER                              0xFFFFFFFF
  655.  
  656. #define LINEMEDIACONTROL_NONE                   0x00000001
  657. #define LINEMEDIACONTROL_START                  0x00000002
  658. #define LINEMEDIACONTROL_RESET                  0x00000004
  659. #define LINEMEDIACONTROL_PAUSE                  0x00000008
  660. #define LINEMEDIACONTROL_RESUME                 0x00000010
  661. #define LINEMEDIACONTROL_RATEUP                 0x00000020
  662. #define LINEMEDIACONTROL_RATEDOWN               0x00000040
  663. #define LINEMEDIACONTROL_RATENORMAL             0x00000080
  664. #define LINEMEDIACONTROL_VOLUMEUP               0x00000100
  665. #define LINEMEDIACONTROL_VOLUMEDOWN             0x00000200
  666. #define LINEMEDIACONTROL_VOLUMENORMAL           0x00000400
  667.  
  668. #define LINEMEDIAMODE_UNKNOWN                   0x00000002
  669. #define LINEMEDIAMODE_INTERACTIVEVOICE          0x00000004
  670. #define LINEMEDIAMODE_AUTOMATEDVOICE            0x00000008
  671. #define LINEMEDIAMODE_DATAMODEM                 0x00000010
  672. #define LINEMEDIAMODE_G3FAX                     0x00000020
  673. #define LINEMEDIAMODE_TDD                       0x00000040
  674. #define LINEMEDIAMODE_G4FAX                     0x00000080
  675. #define LINEMEDIAMODE_DIGITALDATA               0x00000100
  676. #define LINEMEDIAMODE_TELETEX                   0x00000200
  677. #define LINEMEDIAMODE_VIDEOTEX                  0x00000400
  678. #define LINEMEDIAMODE_TELEX                     0x00000800
  679. #define LINEMEDIAMODE_MIXED                     0x00001000
  680. #define LINEMEDIAMODE_ADSI                      0x00002000
  681. #define LINEMEDIAMODE_VOICEVIEW                 0x00004000      // TAPI v1.4
  682. #define LAST_LINEMEDIAMODE                      0x00004000
  683.  
  684. #define LINEOFFERINGMODE_ACTIVE                 0x00000001      // TAPI v1.4
  685. #define LINEOFFERINGMODE_INACTIVE               0x00000002      // TAPI v1.4
  686.  
  687. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  688. #define LINEOPENOPTION_SINGLEADDRESS            0x80000000      // TAPI v2.0
  689. #define LINEOPENOPTION_PROXY                    0x40000000      // TAPI v2.0
  690. #endif
  691.  
  692. #define LINEPARKMODE_DIRECTED                   0x00000001
  693. #define LINEPARKMODE_NONDIRECTED                0x00000002
  694.  
  695. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  696. #define LINEPROXYREQUEST_SETAGENTGROUP          0x00000001      // TAPI v2.0
  697. #define LINEPROXYREQUEST_SETAGENTSTATE          0x00000002      // TAPI v2.0
  698. #define LINEPROXYREQUEST_SETAGENTACTIVITY       0x00000003      // TAPI v2.0
  699. #define LINEPROXYREQUEST_GETAGENTCAPS           0x00000004      // TAPI v2.0
  700. #define LINEPROXYREQUEST_GETAGENTSTATUS         0x00000005      // TAPI v2.0
  701. #define LINEPROXYREQUEST_AGENTSPECIFIC          0x00000006      // TAPI v2.0
  702. #define LINEPROXYREQUEST_GETAGENTACTIVITYLIST   0x00000007      // TAPI v2.0
  703. #define LINEPROXYREQUEST_GETAGENTGROUPLIST      0x00000008      // TAPI v2.0
  704. #endif
  705.  
  706. #define LINEREMOVEFROMCONF_NONE                 0x00000001
  707. #define LINEREMOVEFROMCONF_LAST                 0x00000002
  708. #define LINEREMOVEFROMCONF_ANY                  0x00000003
  709.  
  710. #define LINEREQUESTMODE_MAKECALL                0x00000001
  711. #define LINEREQUESTMODE_MEDIACALL               0x00000002
  712. #define LINEREQUESTMODE_DROP                    0x00000004
  713. #define LAST_LINEREQUESTMODE                    LINEREQUESTMODE_MEDIACALL
  714.  
  715. #define LINEROAMMODE_UNKNOWN                    0x00000001
  716. #define LINEROAMMODE_UNAVAIL                    0x00000002
  717. #define LINEROAMMODE_HOME                       0x00000004
  718. #define LINEROAMMODE_ROAMA                      0x00000008
  719. #define LINEROAMMODE_ROAMB                      0x00000010
  720.  
  721. #define LINESPECIALINFO_NOCIRCUIT               0x00000001
  722. #define LINESPECIALINFO_CUSTIRREG               0x00000002
  723. #define LINESPECIALINFO_REORDER                 0x00000004
  724. #define LINESPECIALINFO_UNKNOWN                 0x00000008
  725. #define LINESPECIALINFO_UNAVAIL                 0x00000010
  726.  
  727. #define LINETERMDEV_PHONE                       0x00000001
  728. #define LINETERMDEV_HEADSET                     0x00000002
  729. #define LINETERMDEV_SPEAKER                     0x00000004
  730.  
  731. #define LINETERMMODE_BUTTONS                    0x00000001
  732. #define LINETERMMODE_LAMPS                      0x00000002
  733. #define LINETERMMODE_DISPLAY                    0x00000004
  734. #define LINETERMMODE_RINGER                     0x00000008
  735. #define LINETERMMODE_HOOKSWITCH                 0x00000010
  736. #define LINETERMMODE_MEDIATOLINE                0x00000020
  737. #define LINETERMMODE_MEDIAFROMLINE              0x00000040
  738. #define LINETERMMODE_MEDIABIDIRECT              0x00000080
  739.  
  740. #define LINETERMSHARING_PRIVATE                 0x00000001
  741. #define LINETERMSHARING_SHAREDEXCL              0x00000002
  742. #define LINETERMSHARING_SHAREDCONF              0x00000004
  743.  
  744. #define LINETOLLLISTOPTION_ADD                  0x00000001
  745. #define LINETOLLLISTOPTION_REMOVE               0x00000002
  746.  
  747. #define LINETONEMODE_CUSTOM                     0x00000001
  748. #define LINETONEMODE_RINGBACK                   0x00000002
  749. #define LINETONEMODE_BUSY                       0x00000004
  750. #define LINETONEMODE_BEEP                       0x00000008
  751. #define LINETONEMODE_BILLING                    0x00000010
  752.  
  753. #define LINETRANSFERMODE_TRANSFER               0x00000001
  754. #define LINETRANSFERMODE_CONFERENCE             0x00000002
  755.  
  756. #define LINETRANSLATEOPTION_CARDOVERRIDE        0x00000001
  757. #define LINETRANSLATEOPTION_CANCELCALLWAITING   0x00000002      // TAPI v1.4
  758. #define LINETRANSLATEOPTION_FORCELOCAL          0x00000004      // TAPI v1.4
  759. #define LINETRANSLATEOPTION_FORCELD             0x00000008      // TAPI v1.4
  760.  
  761. #define LINETRANSLATERESULT_CANONICAL           0x00000001
  762. #define LINETRANSLATERESULT_INTERNATIONAL       0x00000002
  763. #define LINETRANSLATERESULT_LONGDISTANCE        0x00000004
  764. #define LINETRANSLATERESULT_LOCAL               0x00000008
  765. #define LINETRANSLATERESULT_INTOLLLIST          0x00000010
  766. #define LINETRANSLATERESULT_NOTINTOLLLIST       0x00000020
  767. #define LINETRANSLATERESULT_DIALBILLING         0x00000040
  768. #define LINETRANSLATERESULT_DIALQUIET           0x00000080
  769. #define LINETRANSLATERESULT_DIALDIALTONE        0x00000100
  770. #define LINETRANSLATERESULT_DIALPROMPT          0x00000200
  771. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  772. #define LINETRANSLATERESULT_VOICEDETECT         0x00000400      // TAPI v2.0
  773. #endif
  774.  
  775. #define PHONEBUTTONFUNCTION_UNKNOWN             0x00000000
  776. #define PHONEBUTTONFUNCTION_CONFERENCE          0x00000001
  777. #define PHONEBUTTONFUNCTION_TRANSFER            0x00000002
  778. #define PHONEBUTTONFUNCTION_DROP                0x00000003
  779. #define PHONEBUTTONFUNCTION_HOLD                0x00000004
  780. #define PHONEBUTTONFUNCTION_RECALL              0x00000005
  781. #define PHONEBUTTONFUNCTION_DISCONNECT          0x00000006
  782. #define PHONEBUTTONFUNCTION_CONNECT             0x00000007
  783. #define PHONEBUTTONFUNCTION_MSGWAITON           0x00000008
  784. #define PHONEBUTTONFUNCTION_MSGWAITOFF          0x00000009
  785. #define PHONEBUTTONFUNCTION_SELECTRING          0x0000000A
  786. #define PHONEBUTTONFUNCTION_ABBREVDIAL          0x0000000B
  787. #define PHONEBUTTONFUNCTION_FORWARD             0x0000000C
  788. #define PHONEBUTTONFUNCTION_PICKUP              0x0000000D
  789. #define PHONEBUTTONFUNCTION_RINGAGAIN           0x0000000E
  790. #define PHONEBUTTONFUNCTION_PARK                0x0000000F
  791. #define PHONEBUTTONFUNCTION_REJECT              0x00000010
  792. #define PHONEBUTTONFUNCTION_REDIRECT            0x00000011
  793. #define PHONEBUTTONFUNCTION_MUTE                0x00000012
  794. #define PHONEBUTTONFUNCTION_VOLUMEUP            0x00000013
  795. #define PHONEBUTTONFUNCTION_VOLUMEDOWN          0x00000014
  796. #define PHONEBUTTONFUNCTION_SPEAKERON           0x00000015
  797. #define PHONEBUTTONFUNCTION_SPEAKEROFF          0x00000016
  798. #define PHONEBUTTONFUNCTION_FLASH               0x00000017
  799. #define PHONEBUTTONFUNCTION_DATAON              0x00000018
  800. #define PHONEBUTTONFUNCTION_DATAOFF             0x00000019
  801. #define PHONEBUTTONFUNCTION_DONOTDISTURB        0x0000001A
  802. #define PHONEBUTTONFUNCTION_INTERCOM            0x0000001B
  803. #define PHONEBUTTONFUNCTION_BRIDGEDAPP          0x0000001C
  804. #define PHONEBUTTONFUNCTION_BUSY                0x0000001D
  805. #define PHONEBUTTONFUNCTION_CALLAPP             0x0000001E
  806. #define PHONEBUTTONFUNCTION_DATETIME            0x0000001F
  807. #define PHONEBUTTONFUNCTION_DIRECTORY           0x00000020
  808. #define PHONEBUTTONFUNCTION_COVER               0x00000021
  809. #define PHONEBUTTONFUNCTION_CALLID              0x00000022
  810. #define PHONEBUTTONFUNCTION_LASTNUM             0x00000023
  811. #define PHONEBUTTONFUNCTION_NIGHTSRV            0x00000024
  812. #define PHONEBUTTONFUNCTION_SENDCALLS           0x00000025
  813. #define PHONEBUTTONFUNCTION_MSGINDICATOR        0x00000026
  814. #define PHONEBUTTONFUNCTION_REPDIAL             0x00000027
  815. #define PHONEBUTTONFUNCTION_SETREPDIAL          0x00000028
  816. #define PHONEBUTTONFUNCTION_SYSTEMSPEED         0x00000029
  817. #define PHONEBUTTONFUNCTION_STATIONSPEED        0x0000002A
  818. #define PHONEBUTTONFUNCTION_CAMPON              0x0000002B
  819. #define PHONEBUTTONFUNCTION_SAVEREPEAT          0x0000002C
  820. #define PHONEBUTTONFUNCTION_QUEUECALL           0x0000002D
  821. #define PHONEBUTTONFUNCTION_NONE                0x0000002E
  822.  
  823. #define PHONEBUTTONMODE_DUMMY                   0x00000001
  824. #define PHONEBUTTONMODE_CALL                    0x00000002
  825. #define PHONEBUTTONMODE_FEATURE                 0x00000004
  826. #define PHONEBUTTONMODE_KEYPAD                  0x00000008
  827. #define PHONEBUTTONMODE_LOCAL                   0x00000010
  828. #define PHONEBUTTONMODE_DISPLAY                 0x00000020
  829.  
  830. #define PHONEBUTTONSTATE_UP                     0x00000001
  831. #define PHONEBUTTONSTATE_DOWN                   0x00000002
  832. #define PHONEBUTTONSTATE_UNKNOWN                0x00000004      // TAPI v1.4
  833. #define PHONEBUTTONSTATE_UNAVAIL                0x00000008      // TAPI v1.4
  834.  
  835. #define PHONEERR_ALLOCATED                      0x90000001
  836. #define PHONEERR_BADDEVICEID                    0x90000002
  837. #define PHONEERR_INCOMPATIBLEAPIVERSION         0x90000003
  838. #define PHONEERR_INCOMPATIBLEEXTVERSION         0x90000004
  839. #define PHONEERR_INIFILECORRUPT                 0x90000005
  840. #define PHONEERR_INUSE                          0x90000006
  841. #define PHONEERR_INVALAPPHANDLE                 0x90000007
  842. #define PHONEERR_INVALAPPNAME                   0x90000008
  843. #define PHONEERR_INVALBUTTONLAMPID              0x90000009
  844. #define PHONEERR_INVALBUTTONMODE                0x9000000A
  845. #define PHONEERR_INVALBUTTONSTATE               0x9000000B
  846. #define PHONEERR_INVALDATAID                    0x9000000C
  847. #define PHONEERR_INVALDEVICECLASS               0x9000000D
  848. #define PHONEERR_INVALEXTVERSION                0x9000000E
  849. #define PHONEERR_INVALHOOKSWITCHDEV             0x9000000F
  850. #define PHONEERR_INVALHOOKSWITCHMODE            0x90000010
  851. #define PHONEERR_INVALLAMPMODE                  0x90000011
  852. #define PHONEERR_INVALPARAM                     0x90000012
  853. #define PHONEERR_INVALPHONEHANDLE               0x90000013
  854. #define PHONEERR_INVALPHONESTATE                0x90000014
  855. #define PHONEERR_INVALPOINTER                   0x90000015
  856. #define PHONEERR_INVALPRIVILEGE                 0x90000016
  857. #define PHONEERR_INVALRINGMODE                  0x90000017
  858. #define PHONEERR_NODEVICE                       0x90000018
  859. #define PHONEERR_NODRIVER                       0x90000019
  860. #define PHONEERR_NOMEM                          0x9000001A
  861. #define PHONEERR_NOTOWNER                       0x9000001B
  862. #define PHONEERR_OPERATIONFAILED                0x9000001C
  863. #define PHONEERR_OPERATIONUNAVAIL               0x9000001D
  864. #define PHONEERR_RESOURCEUNAVAIL                0x9000001F
  865. #define PHONEERR_REQUESTOVERRUN                 0x90000020
  866. #define PHONEERR_STRUCTURETOOSMALL              0x90000021
  867. #define PHONEERR_UNINITIALIZED                  0x90000022
  868. #define PHONEERR_REINIT                         0x90000023
  869.  
  870.  
  871. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  872. #define PHONEFEATURE_GETBUTTONINFO              0x00000001      // TAPI v2.0
  873. #define PHONEFEATURE_GETDATA                    0x00000002      // TAPI v2.0
  874. #define PHONEFEATURE_GETDISPLAY                 0x00000004      // TAPI v2.0
  875. #define PHONEFEATURE_GETGAINHANDSET             0x00000008      // TAPI v2.0
  876. #define PHONEFEATURE_GETGAINSPEAKER             0x00000010      // TAPI v2.0
  877. #define PHONEFEATURE_GETGAINHEADSET             0x00000020      // TAPI v2.0
  878. #define PHONEFEATURE_GETHOOKSWITCHHANDSET       0x00000040      // TAPI v2.0
  879. #define PHONEFEATURE_GETHOOKSWITCHSPEAKER       0x00000080      // TAPI v2.0
  880. #define PHONEFEATURE_GETHOOKSWITCHHEADSET       0x00000100      // TAPI v2.0
  881. #define PHONEFEATURE_GETLAMP                    0x00000200      // TAPI v2.0
  882. #define PHONEFEATURE_GETRING                    0x00000400      // TAPI v2.0
  883. #define PHONEFEATURE_GETVOLUMEHANDSET           0x00000800      // TAPI v2.0
  884. #define PHONEFEATURE_GETVOLUMESPEAKER           0x00001000      // TAPI v2.0
  885. #define PHONEFEATURE_GETVOLUMEHEADSET           0x00002000      // TAPI v2.0
  886. #define PHONEFEATURE_SETBUTTONINFO              0x00004000      // TAPI v2.0
  887. #define PHONEFEATURE_SETDATA                    0x00008000      // TAPI v2.0
  888. #define PHONEFEATURE_SETDISPLAY                 0x00010000      // TAPI v2.0
  889. #define PHONEFEATURE_SETGAINHANDSET             0x00020000      // TAPI v2.0
  890. #define PHONEFEATURE_SETGAINSPEAKER             0x00040000      // TAPI v2.0
  891. #define PHONEFEATURE_SETGAINHEADSET             0x00080000      // TAPI v2.0
  892. #define PHONEFEATURE_SETHOOKSWITCHHANDSET       0x00100000      // TAPI v2.0
  893. #define PHONEFEATURE_SETHOOKSWITCHSPEAKER       0x00200000      // TAPI v2.0
  894. #define PHONEFEATURE_SETHOOKSWITCHHEADSET       0x00400000      // TAPI v2.0
  895. #define PHONEFEATURE_SETLAMP                    0x00800000      // TAPI v2.0
  896. #define PHONEFEATURE_SETRING                    0x01000000      // TAPI v2.0
  897. #define PHONEFEATURE_SETVOLUMEHANDSET           0x02000000      // TAPI v2.0
  898. #define PHONEFEATURE_SETVOLUMESPEAKER           0x04000000      // TAPI v2.0
  899. #define PHONEFEATURE_SETVOLUMEHEADSET           0x08000000      // TAPI v2.0
  900. #endif
  901.  
  902. #define PHONEHOOKSWITCHDEV_HANDSET              0x00000001
  903. #define PHONEHOOKSWITCHDEV_SPEAKER              0x00000002
  904. #define PHONEHOOKSWITCHDEV_HEADSET              0x00000004
  905.  
  906. #define PHONEHOOKSWITCHMODE_ONHOOK              0x00000001
  907. #define PHONEHOOKSWITCHMODE_MIC                 0x00000002
  908. #define PHONEHOOKSWITCHMODE_SPEAKER             0x00000004
  909. #define PHONEHOOKSWITCHMODE_MICSPEAKER          0x00000008
  910. #define PHONEHOOKSWITCHMODE_UNKNOWN             0x00000010
  911.  
  912. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  913. #define PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW     0x00000001  // TAPI v2.0
  914. #define PHONEINITIALIZEEXOPTION_USEEVENT            0x00000002  // TAPI v2.0
  915. #define PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT   0x00000003  // TAPI v2.0
  916. #endif
  917.  
  918. #define PHONELAMPMODE_DUMMY                     0x00000001
  919. #define PHONELAMPMODE_OFF                       0x00000002
  920. #define PHONELAMPMODE_STEADY                    0x00000004
  921. #define PHONELAMPMODE_WINK                      0x00000008
  922. #define PHONELAMPMODE_FLASH                     0x00000010
  923. #define PHONELAMPMODE_FLUTTER                   0x00000020
  924. #define PHONELAMPMODE_BROKENFLUTTER             0x00000040
  925. #define PHONELAMPMODE_UNKNOWN                   0x00000080
  926.  
  927. #define PHONEPRIVILEGE_MONITOR                  0x00000001
  928. #define PHONEPRIVILEGE_OWNER                    0x00000002
  929.  
  930. #define PHONESTATE_OTHER                        0x00000001
  931. #define PHONESTATE_CONNECTED                    0x00000002
  932. #define PHONESTATE_DISCONNECTED                 0x00000004
  933. #define PHONESTATE_OWNER                        0x00000008
  934. #define PHONESTATE_MONITORS                     0x00000010
  935. #define PHONESTATE_DISPLAY                      0x00000020
  936. #define PHONESTATE_LAMP                         0x00000040
  937. #define PHONESTATE_RINGMODE                     0x00000080
  938. #define PHONESTATE_RINGVOLUME                   0x00000100
  939. #define PHONESTATE_HANDSETHOOKSWITCH            0x00000200
  940. #define PHONESTATE_HANDSETVOLUME                0x00000400
  941. #define PHONESTATE_HANDSETGAIN                  0x00000800
  942. #define PHONESTATE_SPEAKERHOOKSWITCH            0x00001000
  943. #define PHONESTATE_SPEAKERVOLUME                0x00002000
  944. #define PHONESTATE_SPEAKERGAIN                  0x00004000
  945. #define PHONESTATE_HEADSETHOOKSWITCH            0x00008000
  946. #define PHONESTATE_HEADSETVOLUME                0x00010000
  947. #define PHONESTATE_HEADSETGAIN                  0x00020000
  948. #define PHONESTATE_SUSPEND                      0x00040000
  949. #define PHONESTATE_RESUME                       0x00080000
  950. #define PHONESTATE_DEVSPECIFIC                  0x00100000
  951. #define PHONESTATE_REINIT                       0x00200000
  952. #define PHONESTATE_CAPSCHANGE                   0x00400000      // TAPI v1.4
  953. #define PHONESTATE_REMOVED                      0x00800000      // TAPI v1.4
  954.  
  955. #define PHONESTATUSFLAGS_CONNECTED              0x00000001
  956. #define PHONESTATUSFLAGS_SUSPENDED              0x00000002
  957.  
  958. #define STRINGFORMAT_ASCII                      0x00000001
  959. #define STRINGFORMAT_DBCS                       0x00000002
  960. #define STRINGFORMAT_UNICODE                    0x00000003
  961. #define STRINGFORMAT_BINARY                     0x00000004
  962.  
  963. #define TAPI_REPLY                              WM_USER + 99
  964.  
  965. #define TAPIERR_CONNECTED                       0L
  966. #define TAPIERR_DROPPED                         -1L
  967. #define TAPIERR_NOREQUESTRECIPIENT              -2L
  968. #define TAPIERR_REQUESTQUEUEFULL                -3L
  969. #define TAPIERR_INVALDESTADDRESS                -4L
  970. #define TAPIERR_INVALWINDOWHANDLE               -5L
  971. #define TAPIERR_INVALDEVICECLASS                -6L
  972. #define TAPIERR_INVALDEVICEID                   -7L
  973. #define TAPIERR_DEVICECLASSUNAVAIL              -8L
  974. #define TAPIERR_DEVICEIDUNAVAIL                 -9L
  975. #define TAPIERR_DEVICEINUSE                     -10L
  976. #define TAPIERR_DESTBUSY                        -11L
  977. #define TAPIERR_DESTNOANSWER                    -12L
  978. #define TAPIERR_DESTUNAVAIL                     -13L
  979. #define TAPIERR_UNKNOWNWINHANDLE                -14L
  980. #define TAPIERR_UNKNOWNREQUESTID                -15L
  981. #define TAPIERR_REQUESTFAILED                   -16L
  982. #define TAPIERR_REQUESTCANCELLED                -17L
  983. #define TAPIERR_INVALPOINTER                    -18L
  984.  
  985.  
  986. #define TAPIMAXDESTADDRESSSIZE                  80L
  987. #define TAPIMAXAPPNAMESIZE                      40L
  988. #define TAPIMAXCALLEDPARTYSIZE                  40L
  989. #define TAPIMAXCOMMENTSIZE                      80L
  990. #define TAPIMAXDEVICECLASSSIZE                  40L
  991. #define TAPIMAXDEVICEIDSIZE                     40L
  992.  
  993.  
  994.  
  995. typedef struct lineaddresscaps_tag
  996. {
  997.     DWORD       dwTotalSize;
  998.     DWORD       dwNeededSize;
  999.     DWORD       dwUsedSize;
  1000.     DWORD       dwLineDeviceID;
  1001.     DWORD       dwAddressSize;
  1002.     DWORD       dwAddressOffset;
  1003.     DWORD       dwDevSpecificSize;
  1004.     DWORD       dwDevSpecificOffset;
  1005.     DWORD       dwAddressSharing;
  1006.     DWORD       dwAddressStates;
  1007.     DWORD       dwCallInfoStates;
  1008.     DWORD       dwCallerIDFlags;
  1009.     DWORD       dwCalledIDFlags;
  1010.     DWORD       dwConnectedIDFlags;
  1011.     DWORD       dwRedirectionIDFlags;
  1012.     DWORD       dwRedirectingIDFlags;
  1013.     DWORD       dwCallStates;
  1014.     DWORD       dwDialToneModes;
  1015.     DWORD       dwBusyModes;
  1016.     DWORD       dwSpecialInfo;
  1017.     DWORD       dwDisconnectModes;
  1018.     DWORD       dwMaxNumActiveCalls;
  1019.     DWORD       dwMaxNumOnHoldCalls;
  1020.     DWORD       dwMaxNumOnHoldPendingCalls;
  1021.     DWORD       dwMaxNumConference;
  1022.     DWORD       dwMaxNumTransConf;
  1023.     DWORD       dwAddrCapFlags;
  1024.     DWORD       dwCallFeatures;
  1025.     DWORD       dwRemoveFromConfCaps;
  1026.     DWORD       dwRemoveFromConfState;
  1027.     DWORD       dwTransferModes;
  1028.     DWORD       dwParkModes;
  1029.     DWORD       dwForwardModes;
  1030.     DWORD       dwMaxForwardEntries;
  1031.     DWORD       dwMaxSpecificEntries;
  1032.     DWORD       dwMinFwdNumRings;
  1033.     DWORD       dwMaxFwdNumRings;
  1034.     DWORD       dwMaxCallCompletions;
  1035.     DWORD       dwCallCompletionConds;
  1036.     DWORD       dwCallCompletionModes;
  1037.     DWORD       dwNumCompletionMessages;
  1038.     DWORD       dwCompletionMsgTextEntrySize;
  1039.     DWORD       dwCompletionMsgTextSize;
  1040.     DWORD       dwCompletionMsgTextOffset;
  1041.  
  1042.     DWORD       dwAddressFeatures;                              // TAPI v1.4
  1043.  
  1044. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1045.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1046.     DWORD       dwNumCallTreatments;                            // TAPI v2.0
  1047.     DWORD       dwCallTreatmentListSize;                        // TAPI v2.0
  1048.     DWORD       dwCallTreatmentListOffset;                      // TAPI v2.0
  1049.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1050.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1051.     DWORD       dwMaxCallDataSize;                              // TAPI v2.0
  1052.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1053.     DWORD       dwMaxNoAnswerTimeout;                           // TAPI v2.0
  1054.     DWORD       dwConnectedModes;                               // TAPI v2.0
  1055.     DWORD       dwOfferingModes;                                // TAPI v2.0
  1056.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1057. #endif
  1058.  
  1059. } LINEADDRESSCAPS, FAR *LPLINEADDRESSCAPS;
  1060.  
  1061. typedef struct lineaddressstatus_tag
  1062. {
  1063.     DWORD       dwTotalSize;
  1064.     DWORD       dwNeededSize;
  1065.     DWORD       dwUsedSize;
  1066.     DWORD       dwNumInUse;
  1067.     DWORD       dwNumActiveCalls;
  1068.     DWORD       dwNumOnHoldCalls;
  1069.     DWORD       dwNumOnHoldPendCalls;
  1070.     DWORD       dwAddressFeatures;
  1071.     DWORD       dwNumRingsNoAnswer;
  1072.     DWORD       dwForwardNumEntries;
  1073.     DWORD       dwForwardSize;
  1074.     DWORD       dwForwardOffset;
  1075.     DWORD       dwTerminalModesSize;
  1076.     DWORD       dwTerminalModesOffset;
  1077.     DWORD       dwDevSpecificSize;
  1078.     DWORD       dwDevSpecificOffset;
  1079.  
  1080. } LINEADDRESSSTATUS, FAR *LPLINEADDRESSSTATUS;
  1081.  
  1082. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1083. typedef struct lineagentactivityentry_tag
  1084. {
  1085.     DWORD       dwID;                                           // TAPI v2.0
  1086.     DWORD       dwNameSize;                                     // TAPI v2.0
  1087.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1088.  
  1089. } LINEAGENTACTIVITYENTRY, *LPLINEAGENTACTIVITYENTRY;
  1090.  
  1091. typedef struct lineagentactivitylist_tag
  1092. {
  1093.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1094.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1095.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1096.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1097.     DWORD       dwListSize;                                     // TAPI v2.0
  1098.     DWORD       dwListOffset;                                   // TAPI v2.0
  1099.  
  1100. } LINEAGENTACTIVITYLIST, *LPLINEAGENTACTIVITYLIST;
  1101.  
  1102. typedef struct lineagentcaps_tag
  1103. {
  1104.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1105.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1106.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1107.     DWORD       dwAgentHandlerInfoSize;                         // TAPI v2.0
  1108.     DWORD       dwAgentHandlerInfoOffset;                       // TAPI v2.0
  1109.     DWORD       dwCapsVersion;                                  // TAPI v2.0
  1110.     DWORD       dwFeatures;                                     // TAPI v2.0
  1111.     DWORD       dwStates;                                       // TAPI v2.0
  1112.     DWORD       dwNextStates;                                   // TAPI v2.0
  1113.     DWORD       dwMaxNumGroupEntries;                           // TAPI v2.0
  1114.     DWORD       dwAgentStatusMessages;                          // TAPI v2.0
  1115.     DWORD       dwNumAgentExtensionIDs;                         // TAPI v2.0
  1116.     DWORD       dwAgentExtensionIDListSize;                     // TAPI v2.0
  1117.     DWORD       dwAgentExtensionIDListOffset;                   // TAPI v2.0
  1118.  
  1119. } LINEAGENTCAPS, *LPLINEAGENTCAPS;
  1120.  
  1121. typedef struct lineagentgroupentry_tag
  1122. {
  1123.     struct
  1124.     {
  1125.         DWORD   dwGroupID1;                                     // TAPI v2.0
  1126.         DWORD   dwGroupID2;                                     // TAPI v2.0
  1127.         DWORD   dwGroupID3;                                     // TAPI v2.0
  1128.         DWORD   dwGroupID4;                                     // TAPI v2.0
  1129.  
  1130.     } GroupID;
  1131.  
  1132.     DWORD       dwNameSize;                                     // TAPI v2.0
  1133.     DWORD       dwNameOffset;                                   // TAPI v2.0
  1134.  
  1135. } LINEAGENTGROUPENTRY, *LPLINEAGENTGROUPENTRY;
  1136.  
  1137. typedef struct lineagentgrouplist_tag
  1138. {
  1139.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1140.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1141.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1142.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1143.     DWORD       dwListSize;                                     // TAPI v2.0
  1144.     DWORD       dwListOffset;                                   // TAPI v2.0
  1145.  
  1146. } LINEAGENTGROUPLIST, *LPLINEAGENTGROUPLIST;
  1147.  
  1148. typedef struct lineagentstatus_tag
  1149. {
  1150.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1151.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1152.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1153.     DWORD       dwNumEntries;                                   // TAPI v2.0
  1154.     DWORD       dwGroupListSize;                                // TAPI v2.0
  1155.     DWORD       dwGroupListOffset;                              // TAPI v2.0
  1156.     DWORD       dwState;                                        // TAPI v2.0
  1157.     DWORD       dwNextState;                                    // TAPI v2.0
  1158.     DWORD       dwActivityID;                                   // TAPI v2.0
  1159.     DWORD       dwActivitySize;                                 // TAPI v2.0
  1160.     DWORD       dwActivityOffset;                               // TAPI v2.0
  1161.     DWORD       dwAgentFeatures;                                // TAPI v2.0
  1162.     DWORD       dwValidStates;                                  // TAPI v2.0
  1163.     DWORD       dwValidNextStates;                              // TAPI v2.0
  1164.  
  1165. } LINEAGENTSTATUS, *LPLINEAGENTSTATUS;
  1166.  
  1167. typedef struct lineappinfo_tag
  1168. {
  1169.     DWORD       dwMachineNameSize;                              // TAPI v2.0
  1170.     DWORD       dwMachineNameOffset;                            // TAPI v2.0
  1171.     DWORD       dwUserNameSize;                                 // TAPI v2.0
  1172.     DWORD       dwUserNameOffset;                               // TAPI v2.0
  1173.     DWORD       dwModuleFilenameSize;                           // TAPI v2.0
  1174.     DWORD       dwModuleFilenameOffset;                         // TAPI v2.0
  1175.     DWORD       dwFriendlyNameSize;                             // TAPI v2.0
  1176.     DWORD       dwFriendlyNameOffset;                           // TAPI v2.0
  1177.     DWORD       dwMediaModes;                                   // TAPI v2.0
  1178.     DWORD       dwAddressID;                                    // TAPI v2.0
  1179.  
  1180. } LINEAPPINFO, *LPLINEAPPINFO;
  1181. #endif
  1182.  
  1183.  
  1184. typedef struct linedialparams_tag
  1185. {
  1186.     DWORD       dwDialPause;
  1187.     DWORD       dwDialSpeed;
  1188.     DWORD       dwDigitDuration;
  1189.     DWORD       dwWaitForDialtone;
  1190.  
  1191. } LINEDIALPARAMS, FAR *LPLINEDIALPARAMS;
  1192.  
  1193. typedef struct linecallinfo_tag
  1194. {
  1195.     DWORD       dwTotalSize;
  1196.     DWORD       dwNeededSize;
  1197.     DWORD       dwUsedSize;
  1198.     HLINE       hLine;
  1199.     DWORD       dwLineDeviceID;
  1200.     DWORD       dwAddressID;
  1201.     DWORD       dwBearerMode;
  1202.     DWORD       dwRate;
  1203.     DWORD       dwMediaMode;
  1204.     DWORD       dwAppSpecific;
  1205.     DWORD       dwCallID;
  1206.     DWORD       dwRelatedCallID;
  1207.     DWORD       dwCallParamFlags;
  1208.     DWORD       dwCallStates;
  1209.     DWORD       dwMonitorDigitModes;
  1210.     DWORD       dwMonitorMediaModes;
  1211.     LINEDIALPARAMS  DialParams;
  1212.     DWORD       dwOrigin;
  1213.     DWORD       dwReason;
  1214.     DWORD       dwCompletionID;
  1215.     DWORD       dwNumOwners;
  1216.     DWORD       dwNumMonitors;
  1217.     DWORD       dwCountryCode;
  1218.     DWORD       dwTrunk;
  1219.     DWORD       dwCallerIDFlags;
  1220.     DWORD       dwCallerIDSize;
  1221.     DWORD       dwCallerIDOffset;
  1222.     DWORD       dwCallerIDNameSize;
  1223.     DWORD       dwCallerIDNameOffset;
  1224.     DWORD       dwCalledIDFlags;
  1225.     DWORD       dwCalledIDSize;
  1226.     DWORD       dwCalledIDOffset;
  1227.     DWORD       dwCalledIDNameSize;
  1228.     DWORD       dwCalledIDNameOffset;
  1229.     DWORD       dwConnectedIDFlags;
  1230.     DWORD       dwConnectedIDSize;
  1231.     DWORD       dwConnectedIDOffset;
  1232.     DWORD       dwConnectedIDNameSize;
  1233.     DWORD       dwConnectedIDNameOffset;
  1234.     DWORD       dwRedirectionIDFlags;
  1235.     DWORD       dwRedirectionIDSize;
  1236.     DWORD       dwRedirectionIDOffset;
  1237.     DWORD       dwRedirectionIDNameSize;
  1238.     DWORD       dwRedirectionIDNameOffset;
  1239.     DWORD       dwRedirectingIDFlags;
  1240.     DWORD       dwRedirectingIDSize;
  1241.     DWORD       dwRedirectingIDOffset;
  1242.     DWORD       dwRedirectingIDNameSize;
  1243.     DWORD       dwRedirectingIDNameOffset;
  1244.     DWORD       dwAppNameSize;
  1245.     DWORD       dwAppNameOffset;
  1246.     DWORD       dwDisplayableAddressSize;
  1247.     DWORD       dwDisplayableAddressOffset;
  1248.     DWORD       dwCalledPartySize;
  1249.     DWORD       dwCalledPartyOffset;
  1250.     DWORD       dwCommentSize;
  1251.     DWORD       dwCommentOffset;
  1252.     DWORD       dwDisplaySize;
  1253.     DWORD       dwDisplayOffset;
  1254.     DWORD       dwUserUserInfoSize;
  1255.     DWORD       dwUserUserInfoOffset;
  1256.     DWORD       dwHighLevelCompSize;
  1257.     DWORD       dwHighLevelCompOffset;
  1258.     DWORD       dwLowLevelCompSize;
  1259.     DWORD       dwLowLevelCompOffset;
  1260.     DWORD       dwChargingInfoSize;
  1261.     DWORD       dwChargingInfoOffset;
  1262.     DWORD       dwTerminalModesSize;
  1263.     DWORD       dwTerminalModesOffset;
  1264.     DWORD       dwDevSpecificSize;
  1265.     DWORD       dwDevSpecificOffset;
  1266.  
  1267. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1268.     DWORD       dwCallTreatment;                                // TAPI v2.0
  1269.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1270.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1271.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1272.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1273.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1274.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1275. #endif
  1276.  
  1277. } LINECALLINFO, FAR *LPLINECALLINFO;
  1278.  
  1279. typedef struct linecalllist_tag
  1280. {
  1281.     DWORD       dwTotalSize;
  1282.     DWORD       dwNeededSize;
  1283.     DWORD       dwUsedSize;
  1284.     DWORD       dwCallsNumEntries;
  1285.     DWORD       dwCallsSize;
  1286.     DWORD       dwCallsOffset;
  1287.  
  1288. } LINECALLLIST, FAR *LPLINECALLLIST;
  1289.  
  1290. typedef struct linecallparams_tag               // Defaults:
  1291. {
  1292.     DWORD       dwTotalSize;                    // ---------
  1293.     DWORD       dwBearerMode;                   // voice
  1294.     DWORD       dwMinRate;                      // (3.1kHz)
  1295.     DWORD       dwMaxRate;                      // (3.1kHz)
  1296.     DWORD       dwMediaMode;                    // interactiveVoice
  1297.     DWORD       dwCallParamFlags;               // 0
  1298.     DWORD       dwAddressMode;                  // addressID
  1299.     DWORD       dwAddressID;                    // (any available)
  1300.     LINEDIALPARAMS  DialParams;                 // (0, 0, 0, 0)
  1301.     DWORD       dwOrigAddressSize;              // 0
  1302.     DWORD       dwOrigAddressOffset;
  1303.     DWORD       dwDisplayableAddressSize;
  1304.     DWORD       dwDisplayableAddressOffset;
  1305.     DWORD       dwCalledPartySize;              // 0
  1306.     DWORD       dwCalledPartyOffset;
  1307.     DWORD       dwCommentSize;                  // 0
  1308.     DWORD       dwCommentOffset;
  1309.     DWORD       dwUserUserInfoSize;             // 0
  1310.     DWORD       dwUserUserInfoOffset;
  1311.     DWORD       dwHighLevelCompSize;            // 0
  1312.     DWORD       dwHighLevelCompOffset;
  1313.     DWORD       dwLowLevelCompSize;             // 0
  1314.     DWORD       dwLowLevelCompOffset;
  1315.     DWORD       dwDevSpecificSize;              // 0
  1316.     DWORD       dwDevSpecificOffset;
  1317.  
  1318. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1319.     DWORD       dwPredictiveAutoTransferStates;                 // TAPI v2.0
  1320.     DWORD       dwTargetAddressSize;                            // TAPI v2.0
  1321.     DWORD       dwTargetAddressOffset;                          // TAPI v2.0
  1322.     DWORD       dwSendingFlowspecSize;                          // TAPI v2.0
  1323.     DWORD       dwSendingFlowspecOffset;                        // TAPI v2.0
  1324.     DWORD       dwReceivingFlowspecSize;                        // TAPI v2.0
  1325.     DWORD       dwReceivingFlowspecOffset;                      // TAPI v2.0
  1326.     DWORD       dwDeviceClassSize;                              // TAPI v2.0
  1327.     DWORD       dwDeviceClassOffset;                            // TAPI v2.0
  1328.     DWORD       dwDeviceConfigSize;                             // TAPI v2.0
  1329.     DWORD       dwDeviceConfigOffset;                           // TAPI v2.0
  1330.     DWORD       dwCallDataSize;                                 // TAPI v2.0
  1331.     DWORD       dwCallDataOffset;                               // TAPI v2.0
  1332.     DWORD       dwNoAnswerTimeout;                              // TAPI v2.0
  1333.     DWORD       dwCallingPartyIDSize;                           // TAPI v2.0
  1334.     DWORD       dwCallingPartyIDOffset;                         // TAPI v2.0
  1335. #endif
  1336.  
  1337. } LINECALLPARAMS, FAR *LPLINECALLPARAMS;
  1338.  
  1339. typedef struct linecallstatus_tag
  1340. {
  1341.     DWORD       dwTotalSize;
  1342.     DWORD       dwNeededSize;
  1343.     DWORD       dwUsedSize;
  1344.     DWORD       dwCallState;
  1345.     DWORD       dwCallStateMode;
  1346.     DWORD       dwCallPrivilege;
  1347.     DWORD       dwCallFeatures;
  1348.     DWORD       dwDevSpecificSize;
  1349.     DWORD       dwDevSpecificOffset;
  1350.  
  1351. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1352.     DWORD       dwCallFeatures2;                                // TAPI v2.0
  1353. #if WIN32
  1354.     SYSTEMTIME  tStateEntryTime;                                // TAPI v2.0
  1355. #else
  1356.     WORD        tStateEntryTime[8];                             // TAPI v2.0
  1357. #endif
  1358. #endif
  1359.  
  1360. } LINECALLSTATUS, FAR *LPLINECALLSTATUS;
  1361.  
  1362.  
  1363. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1364. typedef struct linecalltreatmententry_tag
  1365. {
  1366.     DWORD       dwCallTreatmentID;                              // TAPI v2.0
  1367.     DWORD       dwCallTreatmentNameSize;                        // TAPI v2.0
  1368.     DWORD       dwCallTreatmentNameOffset;                      // TAPI v2.0
  1369.  
  1370. } LINECALLTREATMENTENTRY, FAR *LPLINECALLTREATMENTENTRY;
  1371. #endif
  1372.  
  1373.  
  1374. typedef struct linecardentry_tag
  1375. {
  1376.     DWORD       dwPermanentCardID;
  1377.     DWORD       dwCardNameSize;
  1378.     DWORD       dwCardNameOffset;
  1379.     DWORD       dwCardNumberDigits;                             // TAPI v1.4
  1380.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1381.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1382.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1383.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1384.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1385.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1386.     DWORD       dwOptions;                                      // TAPI v1.4
  1387.  
  1388. } LINECARDENTRY, FAR *LPLINECARDENTRY;
  1389.  
  1390. typedef struct linecountryentry_tag
  1391. {
  1392.     DWORD       dwCountryID;                                    // TAPI v1.4
  1393.     DWORD       dwCountryCode;                                  // TAPI v1.4
  1394.     DWORD       dwNextCountryID;                                // TAPI v1.4
  1395.     DWORD       dwCountryNameSize;                              // TAPI v1.4
  1396.     DWORD       dwCountryNameOffset;                            // TAPI v1.4
  1397.     DWORD       dwSameAreaRuleSize;                             // TAPI v1.4
  1398.     DWORD       dwSameAreaRuleOffset;                           // TAPI v1.4
  1399.     DWORD       dwLongDistanceRuleSize;                         // TAPI v1.4
  1400.     DWORD       dwLongDistanceRuleOffset;                       // TAPI v1.4
  1401.     DWORD       dwInternationalRuleSize;                        // TAPI v1.4
  1402.     DWORD       dwInternationalRuleOffset;                      // TAPI v1.4
  1403.  
  1404. } LINECOUNTRYENTRY, FAR *LPLINECOUNTRYENTRY;
  1405.  
  1406. typedef struct linecountrylist_tag
  1407. {
  1408.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1409.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1410.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1411.     DWORD       dwNumCountries;                                 // TAPI v1.4
  1412.     DWORD       dwCountryListSize;                              // TAPI v1.4
  1413.     DWORD       dwCountryListOffset;                            // TAPI v1.4
  1414.  
  1415. } LINECOUNTRYLIST, FAR *LPLINECOUNTRYLIST;
  1416.  
  1417. typedef struct linedevcaps_tag
  1418. {
  1419.     DWORD       dwTotalSize;
  1420.     DWORD       dwNeededSize;
  1421.     DWORD       dwUsedSize;
  1422.     DWORD       dwProviderInfoSize;
  1423.     DWORD       dwProviderInfoOffset;
  1424.     DWORD       dwSwitchInfoSize;
  1425.     DWORD       dwSwitchInfoOffset;
  1426.     DWORD       dwPermanentLineID;
  1427.     DWORD       dwLineNameSize;
  1428.     DWORD       dwLineNameOffset;
  1429.     DWORD       dwStringFormat;
  1430.     DWORD       dwAddressModes;
  1431.     DWORD       dwNumAddresses;
  1432.     DWORD       dwBearerModes;
  1433.     DWORD       dwMaxRate;
  1434.     DWORD       dwMediaModes;
  1435.     DWORD       dwGenerateToneModes;
  1436.     DWORD       dwGenerateToneMaxNumFreq;
  1437.     DWORD       dwGenerateDigitModes;
  1438.     DWORD       dwMonitorToneMaxNumFreq;
  1439.     DWORD       dwMonitorToneMaxNumEntries;
  1440.     DWORD       dwMonitorDigitModes;
  1441.     DWORD       dwGatherDigitsMinTimeout;
  1442.     DWORD       dwGatherDigitsMaxTimeout;
  1443.     DWORD       dwMedCtlDigitMaxListSize;
  1444.     DWORD       dwMedCtlMediaMaxListSize;
  1445.     DWORD       dwMedCtlToneMaxListSize;
  1446.     DWORD       dwMedCtlCallStateMaxListSize;
  1447.     DWORD       dwDevCapFlags;
  1448.     DWORD       dwMaxNumActiveCalls;
  1449.     DWORD       dwAnswerMode;
  1450.     DWORD       dwRingModes;
  1451.     DWORD       dwLineStates;
  1452.     DWORD       dwUUIAcceptSize;
  1453.     DWORD       dwUUIAnswerSize;
  1454.     DWORD       dwUUIMakeCallSize;
  1455.     DWORD       dwUUIDropSize;
  1456.     DWORD       dwUUISendUserUserInfoSize;
  1457.     DWORD       dwUUICallInfoSize;
  1458.     LINEDIALPARAMS  MinDialParams;
  1459.     LINEDIALPARAMS  MaxDialParams;
  1460.     LINEDIALPARAMS  DefaultDialParams;
  1461.     DWORD       dwNumTerminals;
  1462.     DWORD       dwTerminalCapsSize;
  1463.     DWORD       dwTerminalCapsOffset;
  1464.     DWORD       dwTerminalTextEntrySize;
  1465.     DWORD       dwTerminalTextSize;
  1466.     DWORD       dwTerminalTextOffset;
  1467.     DWORD       dwDevSpecificSize;
  1468.     DWORD       dwDevSpecificOffset;
  1469.  
  1470.     DWORD       dwLineFeatures;                                 // TAPI v1.4
  1471.  
  1472. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1473.     DWORD       dwSettableDevStatus;                            // TAPI v2.0
  1474.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1475.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1476. #endif
  1477.  
  1478. } LINEDEVCAPS, FAR *LPLINEDEVCAPS;
  1479.     
  1480. typedef struct linedevstatus_tag
  1481. {
  1482.     DWORD       dwTotalSize;
  1483.     DWORD       dwNeededSize;
  1484.     DWORD       dwUsedSize;
  1485.     DWORD       dwNumOpens;
  1486.     DWORD       dwOpenMediaModes;
  1487.     DWORD       dwNumActiveCalls;
  1488.     DWORD       dwNumOnHoldCalls;
  1489.     DWORD       dwNumOnHoldPendCalls;
  1490.     DWORD       dwLineFeatures;
  1491.     DWORD       dwNumCallCompletions;
  1492.     DWORD       dwRingMode;
  1493.     DWORD       dwSignalLevel;
  1494.     DWORD       dwBatteryLevel;
  1495.     DWORD       dwRoamMode;
  1496.     DWORD       dwDevStatusFlags;
  1497.     DWORD       dwTerminalModesSize;
  1498.     DWORD       dwTerminalModesOffset;
  1499.     DWORD       dwDevSpecificSize;
  1500.     DWORD       dwDevSpecificOffset;
  1501.  
  1502. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1503.     DWORD       dwAvailableMediaModes;                          // TAPI v2.0
  1504.     DWORD       dwAppInfoSize;                                  // TAPI v2.0
  1505.     DWORD       dwAppInfoOffset;                                // TAPI v2.0
  1506. #endif
  1507.  
  1508. } LINEDEVSTATUS, FAR *LPLINEDEVSTATUS;
  1509.  
  1510. typedef struct lineextensionid_tag
  1511. {
  1512.     DWORD       dwExtensionID0;
  1513.     DWORD       dwExtensionID1;
  1514.     DWORD       dwExtensionID2;
  1515.     DWORD       dwExtensionID3;
  1516.  
  1517. } LINEEXTENSIONID, FAR *LPLINEEXTENSIONID;
  1518.  
  1519. typedef struct lineforward_tag
  1520. {
  1521.     DWORD       dwForwardMode;
  1522.     DWORD       dwCallerAddressSize;
  1523.     DWORD       dwCallerAddressOffset;
  1524.     DWORD       dwDestCountryCode;
  1525.     DWORD       dwDestAddressSize;
  1526.     DWORD       dwDestAddressOffset;
  1527.  
  1528. } LINEFORWARD, FAR *LPLINEFORWARD;
  1529.  
  1530. typedef struct lineforwardlist_tag
  1531. {
  1532.     DWORD       dwTotalSize;
  1533.     DWORD       dwNumEntries;
  1534.     LINEFORWARD ForwardList[1];
  1535.  
  1536. } LINEFORWARDLIST, FAR *LPLINEFORWARDLIST;
  1537.  
  1538. typedef struct linegeneratetone_tag
  1539. {
  1540.     DWORD       dwFrequency;
  1541.     DWORD       dwCadenceOn;
  1542.     DWORD       dwCadenceOff;
  1543.     DWORD       dwVolume;
  1544.  
  1545. } LINEGENERATETONE, FAR *LPLINEGENERATETONE;
  1546.  
  1547. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1548. typedef struct lineinitializeexparams_tag
  1549. {
  1550.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1551.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1552.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1553.     DWORD       dwOptions;                                      // TAPI v2.0
  1554.  
  1555.     union
  1556.     {
  1557.         HANDLE  hEvent;                                         // TAPI v2.0
  1558.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1559.  
  1560.     } Handles;
  1561.  
  1562.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1563.  
  1564. } LINEINITIALIZEEXPARAMS, FAR *LPLINEINITIALIZEEXPARAMS;
  1565. #endif
  1566.  
  1567. typedef struct linelocationentry_tag
  1568. {
  1569.     DWORD       dwPermanentLocationID;
  1570.     DWORD       dwLocationNameSize;
  1571.     DWORD       dwLocationNameOffset;
  1572.     DWORD       dwCountryCode;
  1573.     DWORD       dwCityCodeSize;
  1574.     DWORD       dwCityCodeOffset;
  1575.     DWORD       dwPreferredCardID;
  1576.  
  1577.     DWORD       dwLocalAccessCodeSize;                          // TAPI v1.4
  1578.     DWORD       dwLocalAccessCodeOffset;                        // TAPI v1.4
  1579.     DWORD       dwLongDistanceAccessCodeSize;                   // TAPI v1.4
  1580.     DWORD       dwLongDistanceAccessCodeOffset;                 // TAPI v1.4
  1581.     DWORD       dwTollPrefixListSize;                           // TAPI v1.4
  1582.     DWORD       dwTollPrefixListOffset;                         // TAPI v1.4
  1583.     DWORD       dwCountryID;                                    // TAPI v1.4
  1584.     DWORD       dwOptions;                                      // TAPI v1.4
  1585.     DWORD       dwCancelCallWaitingSize;                        // TAPI v1.4
  1586.     DWORD       dwCancelCallWaitingOffset;                      // TAPI v1.4
  1587.  
  1588. } LINELOCATIONENTRY, FAR *LPLINELOCATIONENTRY;
  1589.  
  1590. typedef struct linemediacontrolcallstate_tag
  1591. {
  1592.     DWORD       dwCallStates;
  1593.     DWORD       dwMediaControl;
  1594.  
  1595. } LINEMEDIACONTROLCALLSTATE, FAR *LPLINEMEDIACONTROLCALLSTATE;
  1596.  
  1597. typedef struct linemediacontroldigit_tag
  1598. {
  1599.     DWORD       dwDigit;
  1600.     DWORD       dwDigitModes;
  1601.     DWORD       dwMediaControl;
  1602.  
  1603. } LINEMEDIACONTROLDIGIT, FAR *LPLINEMEDIACONTROLDIGIT;
  1604.  
  1605. typedef struct linemediacontrolmedia_tag
  1606. {
  1607.     DWORD       dwMediaModes;
  1608.     DWORD       dwDuration;
  1609.     DWORD       dwMediaControl;
  1610.  
  1611. } LINEMEDIACONTROLMEDIA, FAR *LPLINEMEDIACONTROLMEDIA;
  1612.  
  1613. typedef struct linemediacontroltone_tag
  1614. {
  1615.     DWORD       dwAppSpecific;
  1616.     DWORD       dwDuration;
  1617.     DWORD       dwFrequency1;
  1618.     DWORD       dwFrequency2;
  1619.     DWORD       dwFrequency3;
  1620.     DWORD       dwMediaControl;
  1621.  
  1622. } LINEMEDIACONTROLTONE, FAR *LPLINEMEDIACONTROLTONE;
  1623.  
  1624. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1625. typedef struct linemessage_tag
  1626. {
  1627.     DWORD       hDevice;                                        // TAPI v2.0
  1628.     DWORD       dwMessageID;                                    // TAPI v2.0
  1629.     DWORD       dwCallbackInstance;                             // TAPI v2.0
  1630.     DWORD       dwParam1;                                       // TAPI v2.0
  1631.     DWORD       dwParam2;                                       // TAPI v2.0
  1632.     DWORD       dwParam3;                                       // TAPI v2.0
  1633.  
  1634. } LINEMESSAGE, FAR *LPLINEMESSAGE;
  1635. #endif
  1636.  
  1637. typedef struct linemonitortone_tag
  1638. {
  1639.     DWORD       dwAppSpecific;
  1640.     DWORD       dwDuration;
  1641.     DWORD       dwFrequency1;
  1642.     DWORD       dwFrequency2;
  1643.     DWORD       dwFrequency3;
  1644.  
  1645. } LINEMONITORTONE, FAR *LPLINEMONITORTONE;
  1646.  
  1647. typedef struct lineproviderentry_tag
  1648. {
  1649.     DWORD       dwPermanentProviderID;                          // TAPI v1.4
  1650.     DWORD       dwProviderFilenameSize;                         // TAPI v1.4
  1651.     DWORD       dwProviderFilenameOffset;                       // TAPI v1.4
  1652.  
  1653. } LINEPROVIDERENTRY, FAR *LPLINEPROVIDERENTRY;
  1654.  
  1655. typedef struct lineproviderlist_tag
  1656. {
  1657.     DWORD       dwTotalSize;                                    // TAPI v1.4
  1658.     DWORD       dwNeededSize;                                   // TAPI v1.4
  1659.     DWORD       dwUsedSize;                                     // TAPI v1.4
  1660.     DWORD       dwNumProviders;                                 // TAPI v1.4
  1661.     DWORD       dwProviderListSize;                             // TAPI v1.4
  1662.     DWORD       dwProviderListOffset;                           // TAPI v1.4
  1663.  
  1664. } LINEPROVIDERLIST, FAR *LPLINEPROVIDERLIST;
  1665.  
  1666.  
  1667. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1668. typedef struct lineproxyrequest_tag
  1669. {
  1670.     DWORD       dwSize;                                         // TAPI v2.0
  1671.     DWORD       dwClientMachineNameSize;                        // TAPI v2.0
  1672.     DWORD       dwClientMachineNameOffset;                      // TAPI v2.0
  1673.     DWORD       dwClientUserNameSize;                           // TAPI v2.0
  1674.     DWORD       dwClientUserNameOffset;                         // TAPI v2.0
  1675.     DWORD       dwClientAppAPIVersion;                          // TAPI v2.0
  1676.     DWORD       dwRequestType;                                  // TAPI v2.0
  1677.  
  1678.     union
  1679.     {
  1680.     struct
  1681.     {
  1682.         DWORD                   dwAddressID;                    // TAPI v2.0
  1683.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1684.  
  1685.     } SetAgentGroup;
  1686.  
  1687.     struct
  1688.     {
  1689.         DWORD                   dwAddressID;                    // TAPI v2.0
  1690.         DWORD                   dwAgentState;                   // TAPI v2.0
  1691.         DWORD                   dwNextAgentState;               // TAPI v2.0
  1692.  
  1693.     } SetAgentState;
  1694.  
  1695.     struct
  1696.     {
  1697.         DWORD                   dwAddressID;                    // TAPI v2.0
  1698.         DWORD                   dwActivityID;                   // TAPI v2.0
  1699.  
  1700.     } SetAgentActivity;
  1701.  
  1702.     struct
  1703.     {
  1704.         DWORD                   dwAddressID;                    // TAPI v2.0
  1705.         LINEAGENTCAPS           AgentCaps;                      // TAPI v2.0
  1706.  
  1707.     } GetAgentCaps;
  1708.  
  1709.     struct
  1710.     {
  1711.         DWORD                   dwAddressID;                    // TAPI v2.0
  1712.         LINEAGENTSTATUS         AgentStatus;                    // TAPI v2.0
  1713.  
  1714.     } GetAgentStatus;
  1715.  
  1716.     struct
  1717.     {
  1718.         DWORD                   dwAddressID;                    // TAPI v2.0
  1719.         DWORD                   dwAgentExtensionIDIndex;        // TAPI v2.0
  1720.         DWORD                   dwSize;                         // TAPI v2.0
  1721.         BYTE                    Params[1];                      // TAPI v2.0
  1722.  
  1723.     } AgentSpecific;
  1724.  
  1725.     struct
  1726.     {
  1727.         DWORD                   dwAddressID;                    // TAPI v2.0
  1728.         LINEAGENTACTIVITYLIST   ActivityList;                   // TAPI v2.0
  1729.  
  1730.     } GetAgentActivityList;
  1731.  
  1732.     struct
  1733.     {
  1734.         DWORD                   dwAddressID;                    // TAPI v2.0
  1735.         LINEAGENTGROUPLIST      GroupList;                      // TAPI v2.0
  1736.  
  1737.     } GetAgentGroupList;
  1738.     }; //ProxyRequestType;
  1739.  
  1740. } LINEPROXYREQUEST, *LPLINEPROXYREQUEST;
  1741. #endif
  1742.  
  1743.  
  1744. typedef struct linereqmakecall_tag
  1745. {
  1746.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1747.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1748.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1749.     char        szComment[TAPIMAXCOMMENTSIZE];
  1750.  
  1751. } LINEREQMAKECALL, FAR *LPLINEREQMAKECALL;
  1752.  
  1753. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1754. typedef struct linereqmakecallW_tag
  1755. {
  1756.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1757.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1758.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1759.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1760.  
  1761. } LINEREQMAKECALLW, FAR *LPLINEREQMAKECALLW;
  1762. #endif
  1763.  
  1764. #ifdef UNICODE
  1765. #define LINEREQMAKECALL LINEREQMAKECALLW
  1766. #endif
  1767.  
  1768. typedef struct linereqmediacall_tag
  1769. {
  1770.     HWND        hWnd;
  1771.     WPARAM      wRequestID;
  1772.     char        szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1773.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1774.     DWORD       dwSize;
  1775.     DWORD       dwSecure;
  1776.     char        szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1777.     char        szAppName[TAPIMAXAPPNAMESIZE];
  1778.     char        szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1779.     char        szComment[TAPIMAXCOMMENTSIZE];
  1780.  
  1781. } LINEREQMEDIACALL, FAR *LPLINEREQMEDIACALL;
  1782.  
  1783. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1784. typedef struct linereqmediacallW_tag
  1785. {
  1786.     HWND        hWnd;
  1787.     WPARAM      wRequestID;
  1788.     WCHAR       szDeviceClass[TAPIMAXDEVICECLASSSIZE];
  1789.     unsigned char   ucDeviceID[TAPIMAXDEVICEIDSIZE];
  1790.     DWORD       dwSize;
  1791.     DWORD       dwSecure;
  1792.     WCHAR       szDestAddress[TAPIMAXDESTADDRESSSIZE];
  1793.     WCHAR       szAppName[TAPIMAXAPPNAMESIZE];
  1794.     WCHAR       szCalledParty[TAPIMAXCALLEDPARTYSIZE];
  1795.     WCHAR       szComment[TAPIMAXCOMMENTSIZE];
  1796.  
  1797. } LINEREQMEDIACALLW, FAR *LPLINEREQMEDIACALLW;
  1798. #endif
  1799.  
  1800. #ifdef UNICODE
  1801. #define LINEREQMEDIACALL LINEREQMEDIACALLW
  1802. #endif
  1803.  
  1804.  
  1805. typedef struct linetermcaps_tag
  1806. {
  1807.     DWORD       dwTermDev;
  1808.     DWORD       dwTermModes;
  1809.     DWORD       dwTermSharing;
  1810.  
  1811. } LINETERMCAPS, FAR *LPLINETERMCAPS;
  1812.  
  1813. typedef struct linetranslatecaps_tag
  1814. {
  1815.     DWORD       dwTotalSize;
  1816.     DWORD       dwNeededSize;
  1817.     DWORD       dwUsedSize;
  1818.     DWORD       dwNumLocations;
  1819.     DWORD       dwLocationListSize;
  1820.     DWORD       dwLocationListOffset;
  1821.     DWORD       dwCurrentLocationID;
  1822.     DWORD       dwNumCards;
  1823.     DWORD       dwCardListSize;
  1824.     DWORD       dwCardListOffset;
  1825.     DWORD       dwCurrentPreferredCardID;
  1826.  
  1827. } LINETRANSLATECAPS, FAR *LPLINETRANSLATECAPS;
  1828.  
  1829. typedef struct linetranslateoutput_tag
  1830. {
  1831.     DWORD       dwTotalSize;
  1832.     DWORD       dwNeededSize;
  1833.     DWORD       dwUsedSize;
  1834.     DWORD       dwDialableStringSize;
  1835.     DWORD       dwDialableStringOffset;
  1836.     DWORD       dwDisplayableStringSize;
  1837.     DWORD       dwDisplayableStringOffset;
  1838.     DWORD       dwCurrentCountry;
  1839.     DWORD       dwDestCountry;
  1840.     DWORD       dwTranslateResults;
  1841.  
  1842. } LINETRANSLATEOUTPUT, FAR *LPLINETRANSLATEOUTPUT;
  1843.  
  1844. typedef struct phonebuttoninfo_tag
  1845. {
  1846.     DWORD       dwTotalSize;
  1847.     DWORD       dwNeededSize;
  1848.     DWORD       dwUsedSize;
  1849.     DWORD       dwButtonMode;
  1850.     DWORD       dwButtonFunction;
  1851.     DWORD       dwButtonTextSize;
  1852.     DWORD       dwButtonTextOffset;
  1853.     DWORD       dwDevSpecificSize;
  1854.     DWORD       dwDevSpecificOffset;
  1855.  
  1856.     DWORD       dwButtonState;                                  // TAPI v1.4
  1857.  
  1858. } PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;
  1859.  
  1860. typedef struct phonecaps_tag
  1861. {
  1862.     DWORD       dwTotalSize;
  1863.     DWORD       dwNeededSize;
  1864.     DWORD       dwUsedSize;
  1865.     DWORD       dwProviderInfoSize;
  1866.     DWORD       dwProviderInfoOffset;
  1867.     DWORD       dwPhoneInfoSize;
  1868.     DWORD       dwPhoneInfoOffset;
  1869.     DWORD       dwPermanentPhoneID;
  1870.     DWORD       dwPhoneNameSize;
  1871.     DWORD       dwPhoneNameOffset;
  1872.     DWORD       dwStringFormat;
  1873.     DWORD       dwPhoneStates;
  1874.     DWORD       dwHookSwitchDevs;
  1875.     DWORD       dwHandsetHookSwitchModes;
  1876.     DWORD       dwSpeakerHookSwitchModes;
  1877.     DWORD       dwHeadsetHookSwitchModes;
  1878.     DWORD       dwVolumeFlags;
  1879.     DWORD       dwGainFlags;
  1880.     DWORD       dwDisplayNumRows;
  1881.     DWORD       dwDisplayNumColumns;
  1882.     DWORD       dwNumRingModes;
  1883.     DWORD       dwNumButtonLamps;
  1884.     DWORD       dwButtonModesSize;
  1885.     DWORD       dwButtonModesOffset;
  1886.     DWORD       dwButtonFunctionsSize;
  1887.     DWORD       dwButtonFunctionsOffset;
  1888.     DWORD       dwLampModesSize;
  1889.     DWORD       dwLampModesOffset;
  1890.     DWORD       dwNumSetData;
  1891.     DWORD       dwSetDataSize;
  1892.     DWORD       dwSetDataOffset;
  1893.     DWORD       dwNumGetData;
  1894.     DWORD       dwGetDataSize;
  1895.     DWORD       dwGetDataOffset;
  1896.     DWORD       dwDevSpecificSize;
  1897.     DWORD       dwDevSpecificOffset;
  1898.  
  1899. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1900.     DWORD       dwDeviceClassesSize;                            // TAPI v2.0
  1901.     DWORD       dwDeviceClassesOffset;                          // TAPI v2.0
  1902.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  1903.     DWORD       dwSettableHandsetHookSwitchModes;               // TAPI v2.0
  1904.     DWORD       dwSettableSpeakerHookSwitchModes;               // TAPI v2.0
  1905.     DWORD       dwSettableHeadsetHookSwitchModes;               // TAPI v2.0
  1906.     DWORD       dwMonitoredHandsetHookSwitchModes;              // TAPI v2.0
  1907.     DWORD       dwMonitoredSpeakerHookSwitchModes;              // TAPI v2.0
  1908.     DWORD       dwMonitoredHeadsetHookSwitchModes;              // TAPI v2.0
  1909. #endif
  1910.  
  1911. } PHONECAPS, FAR *LPPHONECAPS;
  1912.  
  1913. typedef struct phoneextensionid_tag
  1914. {
  1915.     DWORD       dwExtensionID0;
  1916.     DWORD       dwExtensionID1;
  1917.     DWORD       dwExtensionID2;
  1918.     DWORD       dwExtensionID3;
  1919.  
  1920. } PHONEEXTENSIONID, FAR *LPPHONEEXTENSIONID;
  1921.  
  1922. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1923. typedef struct phoneinitializeexparams_tag
  1924. {
  1925.     DWORD       dwTotalSize;                                    // TAPI v2.0
  1926.     DWORD       dwNeededSize;                                   // TAPI v2.0
  1927.     DWORD       dwUsedSize;                                     // TAPI v2.0
  1928.     DWORD       dwOptions;                                      // TAPI v2.0
  1929.  
  1930.     union
  1931.     {
  1932.         HANDLE  hEvent;                                         // TAPI v2.0
  1933.         HANDLE  hCompletionPort;                                // TAPI v2.0
  1934.  
  1935.     } Handles;
  1936.  
  1937.     DWORD       dwCompletionKey;                                // TAPI v2.0
  1938.  
  1939. } PHONEINITIALIZEEXPARAMS, FAR *LPPHONEINITIALIZEEXPARAMS;
  1940.  
  1941. typedef struct phonemessage_tag
  1942. {
  1943.     DWORD       hDevice;                                        // TAPI v2.0
  1944.     DWORD       dwMessageID;                                    // TAPI v2.0
  1945.     DWORD       dwCallbackInstance;                             // TAPI v2.0
  1946.     DWORD       dwParam1;                                       // TAPI v2.0
  1947.     DWORD       dwParam2;                                       // TAPI v2.0
  1948.     DWORD       dwParam3;                                       // TAPI v2.0
  1949.  
  1950. } PHONEMESSAGE, FAR *LPPHONEMESSAGE;
  1951. #endif
  1952.  
  1953. typedef struct phonestatus_tag
  1954. {
  1955.     DWORD       dwTotalSize;
  1956.     DWORD       dwNeededSize;
  1957.     DWORD       dwUsedSize;
  1958.     DWORD       dwStatusFlags;
  1959.     DWORD       dwNumOwners;
  1960.     DWORD       dwNumMonitors;
  1961.     DWORD       dwRingMode;
  1962.     DWORD       dwRingVolume;
  1963.     DWORD       dwHandsetHookSwitchMode;
  1964.     DWORD       dwHandsetVolume;
  1965.     DWORD       dwHandsetGain;
  1966.     DWORD       dwSpeakerHookSwitchMode;
  1967.     DWORD       dwSpeakerVolume;
  1968.     DWORD       dwSpeakerGain;
  1969.     DWORD       dwHeadsetHookSwitchMode;
  1970.     DWORD       dwHeadsetVolume;
  1971.     DWORD       dwHeadsetGain;
  1972.     DWORD       dwDisplaySize;
  1973.     DWORD       dwDisplayOffset;
  1974.     DWORD       dwLampModesSize;
  1975.     DWORD       dwLampModesOffset;
  1976.     DWORD       dwOwnerNameSize;
  1977.     DWORD       dwOwnerNameOffset;
  1978.     DWORD       dwDevSpecificSize;
  1979.     DWORD       dwDevSpecificOffset;
  1980.  
  1981. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  1982.     DWORD       dwPhoneFeatures;                                // TAPI v2.0
  1983. #endif
  1984.  
  1985. } PHONESTATUS, FAR *LPPHONESTATUS;
  1986.  
  1987. typedef struct varstring_tag
  1988. {
  1989.     DWORD       dwTotalSize;
  1990.     DWORD       dwNeededSize;
  1991.     DWORD       dwUsedSize;
  1992.     DWORD       dwStringFormat;
  1993.     DWORD       dwStringSize;
  1994.     DWORD       dwStringOffset;
  1995.  
  1996. } VARSTRING, FAR *LPVARSTRING;
  1997.  
  1998.  
  1999.  
  2000. LONG
  2001. WINAPI
  2002. lineAccept(
  2003.     HCALL               hCall,
  2004.     LPCSTR              lpsUserUserInfo,
  2005.     DWORD               dwSize
  2006.     );
  2007.  
  2008. LONG
  2009. WINAPI
  2010. lineAddProvider(                                                // TAPI v1.4
  2011.     LPCSTR              lpszProviderFilename,
  2012.     HWND                hwndOwner,
  2013.     LPDWORD             lpdwPermanentProviderID
  2014.     );
  2015.  
  2016. #if WIN32
  2017. LONG
  2018. WINAPI
  2019. lineAddProviderA(                                               // TAPI v1.4
  2020.     LPCSTR              lpszProviderFilename,
  2021.     HWND                hwndOwner,
  2022.     LPDWORD             lpdwPermanentProviderID
  2023.     );
  2024.  
  2025. LONG
  2026. WINAPI
  2027. lineAddProviderW(
  2028.     LPCWSTR             lpszProviderFilename,
  2029.     HWND                hwndOwner,
  2030.     LPDWORD             lpdwPermanentProviderID
  2031.     );
  2032.  
  2033. #ifdef UNICODE
  2034. #define lineAddProvider lineAddProviderW
  2035. #else
  2036. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2037. #define lineAddProvider lineAddProviderA
  2038. #endif
  2039. #endif
  2040.  
  2041. #endif
  2042.  
  2043.  
  2044. LONG
  2045. WINAPI
  2046. lineAddToConference(
  2047.     HCALL               hConfCall,
  2048.     HCALL               hConsultCall
  2049.     );
  2050.  
  2051. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2052. LONG
  2053. WINAPI
  2054. lineAgentSpecific(                                              // TAPI v2.0
  2055.     HLINE               hLine,
  2056.     DWORD               dwAddressID,
  2057.     DWORD               dwAgentExtensionIDIndex,
  2058.     LPVOID              lpParams,
  2059.     DWORD               dwSize
  2060.     );
  2061. #endif
  2062.  
  2063. LONG
  2064. WINAPI
  2065. lineAnswer(
  2066.     HCALL               hCall,
  2067.     LPCSTR              lpsUserUserInfo,
  2068.     DWORD               dwSize
  2069.     );
  2070.  
  2071. LONG
  2072. WINAPI
  2073. lineBlindTransfer(
  2074.     HCALL               hCall,
  2075.     LPCSTR              lpszDestAddress,
  2076.     DWORD               dwCountryCode
  2077.     );
  2078.  
  2079. #if WIN32
  2080. LONG
  2081. WINAPI
  2082. lineBlindTransferA(
  2083.     HCALL               hCall,
  2084.     LPCSTR              lpszDestAddress,
  2085.     DWORD               dwCountryCode
  2086.     );
  2087.  
  2088. LONG
  2089. WINAPI
  2090. lineBlindTransferW(
  2091.     HCALL               hCall,
  2092.     LPCWSTR             lpszDestAddressW,
  2093.     DWORD               dwCountryCode
  2094.     );
  2095.  
  2096. #ifdef UNICODE
  2097. #define lineBlindTransfer lineBlindTransferW
  2098. #else
  2099. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2100. #define lineBlindTransfer lineBlindTransferA
  2101. #endif
  2102. #endif
  2103.  
  2104. #endif
  2105.  
  2106.  
  2107. LONG
  2108. WINAPI
  2109. lineClose(
  2110.     HLINE               hLine
  2111.     );
  2112.  
  2113. LONG
  2114. WINAPI
  2115. lineCompleteCall(
  2116.     HCALL               hCall,
  2117.     LPDWORD             lpdwCompletionID,
  2118.     DWORD               dwCompletionMode,
  2119.     DWORD               dwMessageID
  2120.     );
  2121.  
  2122. LONG
  2123. WINAPI
  2124. lineCompleteTransfer(
  2125.     HCALL               hCall,
  2126.     HCALL               hConsultCall,
  2127.     LPHCALL             lphConfCall,
  2128.     DWORD               dwTransferMode
  2129.     );
  2130.  
  2131. LONG
  2132. WINAPI
  2133. lineConfigDialog(
  2134.     DWORD               dwDeviceID,
  2135.     HWND                hwndOwner,
  2136.     LPCSTR              lpszDeviceClass
  2137.     );
  2138.  
  2139. #if WIN32
  2140. LONG
  2141. WINAPI
  2142. lineConfigDialogA(
  2143.     DWORD               dwDeviceID,
  2144.     HWND                hwndOwner,
  2145.     LPCSTR              lpszDeviceClass
  2146.     );
  2147.  
  2148. LONG
  2149. WINAPI
  2150. lineConfigDialogW(
  2151.     DWORD               dwDeviceID,
  2152.     HWND                hwndOwner,
  2153.     LPCWSTR             lpszDeviceClass
  2154.     );
  2155.  
  2156. #ifdef UNICODE
  2157. #define lineConfigDialog lineConfigDialogW
  2158. #else
  2159. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2160. #define lineConfigDialog lineConfigDialogA
  2161. #endif
  2162. #endif
  2163.  
  2164. #endif
  2165.  
  2166.  
  2167. LONG
  2168. WINAPI
  2169. lineConfigDialogEdit(                                           // TAPI v1.4
  2170.     DWORD               dwDeviceID,
  2171.     HWND                hwndOwner,
  2172.     LPCSTR              lpszDeviceClass,
  2173.     LPVOID              const lpDeviceConfigIn,
  2174.     DWORD               dwSize,
  2175.     LPVARSTRING         lpDeviceConfigOut
  2176.     );
  2177.  
  2178. #if WIN32
  2179. LONG
  2180. WINAPI
  2181. lineConfigDialogEditA(                                          // TAPI v1.4
  2182.     DWORD               dwDeviceID,
  2183.     HWND                hwndOwner,
  2184.     LPCSTR              lpszDeviceClass,
  2185.     LPVOID              const lpDeviceConfigIn,
  2186.     DWORD               dwSize,
  2187.     LPVARSTRING         lpDeviceConfigOut
  2188.     );
  2189.  
  2190. LONG
  2191. WINAPI
  2192. lineConfigDialogEditW(
  2193.     DWORD               dwDeviceID,
  2194.     HWND                hwndOwner,
  2195.     LPCWSTR             lpszDeviceClass,
  2196.     LPVOID              const lpDeviceConfigIn,
  2197.     DWORD               dwSize,
  2198.     LPVARSTRING         lpDeviceConfigOut
  2199.     );
  2200.  
  2201. #ifdef UNICODE
  2202. #define lineConfigDialogEdit lineConfigDialogEditW
  2203. #else
  2204. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2205. #define lineConfigDialogEdit lineConfigDialogEditA
  2206. #endif
  2207. #endif
  2208.  
  2209. #endif
  2210.  
  2211. LONG
  2212. WINAPI
  2213. lineConfigProvider(                                             // TAPI v1.4
  2214.     HWND                hwndOwner,
  2215.     DWORD               dwPermanentProviderID
  2216.     );
  2217.  
  2218. LONG
  2219. WINAPI
  2220. lineDeallocateCall(
  2221.     HCALL               hCall
  2222.     );
  2223.  
  2224. LONG
  2225. WINAPI
  2226. lineDevSpecific(
  2227.     HLINE               hLine,
  2228.     DWORD               dwAddressID,
  2229.     HCALL               hCall,
  2230.     LPVOID              lpParams,
  2231.     DWORD               dwSize
  2232.     );
  2233.  
  2234. LONG
  2235. WINAPI
  2236. lineDevSpecificFeature(
  2237.     HLINE               hLine,
  2238.     DWORD               dwFeature,
  2239.     LPVOID              lpParams,
  2240.     DWORD               dwSize
  2241.     );
  2242.  
  2243. LONG
  2244. WINAPI
  2245. lineDial(
  2246.     HCALL               hCall,
  2247.     LPCSTR              lpszDestAddress,
  2248.     DWORD               dwCountryCode
  2249.     );
  2250.  
  2251. #if WIN32
  2252. LONG
  2253. WINAPI
  2254. lineDialA(
  2255.     HCALL               hCall,
  2256.     LPCSTR              lpszDestAddress,
  2257.     DWORD               dwCountryCode
  2258.     );
  2259.  
  2260. LONG
  2261. WINAPI
  2262. lineDialW(
  2263.     HCALL               hCall,
  2264.     LPCWSTR             lpszDestAddress,
  2265.     DWORD               dwCountryCode
  2266.     );
  2267.  
  2268. #ifdef UNICODE
  2269. #define lineDial lineDialW
  2270. #else
  2271. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2272. #define lineDial lineDialA
  2273. #endif
  2274. #endif
  2275.  
  2276. #endif
  2277.  
  2278. LONG
  2279. WINAPI
  2280. lineDrop(
  2281.     HCALL               hCall,
  2282.     LPCSTR              lpsUserUserInfo,
  2283.     DWORD               dwSize
  2284.     );
  2285.  
  2286. LONG
  2287. WINAPI
  2288. lineForward(
  2289.     HLINE               hLine,
  2290.     DWORD               bAllAddresses,
  2291.     DWORD               dwAddressID,
  2292.     LPLINEFORWARDLIST   const lpForwardList,
  2293.     DWORD               dwNumRingsNoAnswer,
  2294.     LPHCALL             lphConsultCall,
  2295.     LPLINECALLPARAMS    const lpCallParams
  2296.     );
  2297.  
  2298. #if WIN32
  2299. LONG
  2300. WINAPI
  2301. lineForwardA(
  2302.     HLINE               hLine,
  2303.     DWORD               bAllAddresses,
  2304.     DWORD               dwAddressID,
  2305.     LPLINEFORWARDLIST   const lpForwardList,
  2306.     DWORD               dwNumRingsNoAnswer,
  2307.     LPHCALL             lphConsultCall,
  2308.     LPLINECALLPARAMS    const lpCallParams
  2309.     );
  2310.  
  2311. LONG
  2312. WINAPI
  2313. lineForwardW(
  2314.     HLINE               hLine,
  2315.     DWORD               bAllAddresses,
  2316.     DWORD               dwAddressID,
  2317.     LPLINEFORWARDLIST   const lpForwardList,
  2318.     DWORD               dwNumRingsNoAnswer,
  2319.     LPHCALL             lphConsultCall,
  2320.     LPLINECALLPARAMS    const lpCallParams
  2321.     );
  2322.  
  2323. #ifdef UNICODE
  2324. #define lineForward lineForwardW
  2325. #else
  2326. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2327. #define lineForward lineForwardA
  2328. #endif
  2329. #endif
  2330.  
  2331. #endif
  2332.  
  2333. LONG
  2334. WINAPI
  2335. lineGatherDigits(
  2336.     HCALL               hCall,
  2337.     DWORD               dwDigitModes,
  2338.     LPSTR               lpsDigits,
  2339.     DWORD               dwNumDigits,
  2340.     LPCSTR              lpszTerminationDigits,
  2341.     DWORD               dwFirstDigitTimeout,
  2342.     DWORD               dwInterDigitTimeout
  2343.     );
  2344.  
  2345. #if WIN32
  2346. LONG
  2347. WINAPI
  2348. lineGatherDigitsA(
  2349.     HCALL               hCall,
  2350.     DWORD               dwDigitModes,
  2351.     LPSTR               lpsDigits,
  2352.     DWORD               dwNumDigits,
  2353.     LPCSTR              lpszTerminationDigits,
  2354.     DWORD               dwFirstDigitTimeout,
  2355.     DWORD               dwInterDigitTimeout
  2356.     );
  2357.  
  2358. LONG
  2359. WINAPI
  2360. lineGatherDigitsW(
  2361.     HCALL               hCall,
  2362.     DWORD               dwDigitModes,
  2363.     LPWSTR              lpsDigits,
  2364.     DWORD               dwNumDigits,
  2365.     LPCWSTR             lpszTerminationDigits,
  2366.     DWORD               dwFirstDigitTimeout,
  2367.     DWORD               dwInterDigitTimeout
  2368.     );
  2369.  
  2370. #ifdef UNICODE
  2371. #define lineGatherDigits lineGatherDigitsW
  2372. #else
  2373. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2374. #define lineGatherDigits lineGatherDigitsA
  2375. #endif
  2376. #endif
  2377.  
  2378. #endif
  2379.  
  2380. LONG
  2381. WINAPI
  2382. lineGenerateDigits(
  2383.     HCALL               hCall,
  2384.     DWORD               dwDigitMode,
  2385.     LPCSTR              lpszDigits,
  2386.     DWORD               dwDuration
  2387.     );
  2388.  
  2389. #if WIN32
  2390. LONG
  2391. WINAPI
  2392. lineGenerateDigitsA(
  2393.     HCALL               hCall,
  2394.     DWORD               dwDigitMode,
  2395.     LPCSTR              lpszDigits,
  2396.     DWORD               dwDuration
  2397.     );
  2398.  
  2399. LONG
  2400. WINAPI
  2401. lineGenerateDigitsW(
  2402.     HCALL               hCall,
  2403.     DWORD               dwDigitMode,
  2404.     LPCWSTR             lpszDigits,
  2405.     DWORD               dwDuration
  2406.     );
  2407.  
  2408. #ifdef UNICODE
  2409. #define lineGenerateDigits lineGenerateDigitsW
  2410. #else
  2411. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2412. #define lineGenerateDigits lineGenerateDigitsA
  2413. #endif
  2414. #endif
  2415.  
  2416. #endif
  2417.  
  2418. LONG
  2419. WINAPI
  2420. lineGenerateTone(
  2421.     HCALL               hCall,
  2422.     DWORD               dwToneMode,
  2423.     DWORD               dwDuration,
  2424.     DWORD               dwNumTones,
  2425.     LPLINEGENERATETONE  const lpTones
  2426.     );
  2427.  
  2428. LONG
  2429. WINAPI
  2430. lineGetAddressCaps(
  2431.     HLINEAPP            hLineApp,
  2432.     DWORD               dwDeviceID,
  2433.     DWORD               dwAddressID,
  2434.     DWORD               dwAPIVersion,
  2435.     DWORD               dwExtVersion,
  2436.     LPLINEADDRESSCAPS   lpAddressCaps
  2437.     );
  2438.  
  2439. #if WIN32
  2440. LONG
  2441. WINAPI
  2442. lineGetAddressCapsA(
  2443.     HLINEAPP            hLineApp,
  2444.     DWORD               dwDeviceID,
  2445.     DWORD               dwAddressID,
  2446.     DWORD               dwAPIVersion,
  2447.     DWORD               dwExtVersion,
  2448.     LPLINEADDRESSCAPS   lpAddressCaps
  2449.     );
  2450.  
  2451. LONG
  2452. WINAPI
  2453. lineGetAddressCapsW(
  2454.     HLINEAPP            hLineApp,
  2455.     DWORD               dwDeviceID,
  2456.     DWORD               dwAddressID,
  2457.     DWORD               dwAPIVersion,
  2458.     DWORD               dwExtVersion,
  2459.     LPLINEADDRESSCAPS   lpAddressCaps
  2460.     );
  2461.  
  2462. #ifdef UNICODE
  2463. #define lineGetAddressCaps lineGetAddressCapsW
  2464. #else
  2465. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2466. #define lineGetAddressCaps lineGetAddressCapsA
  2467. #endif
  2468. #endif
  2469.  
  2470. #endif
  2471.  
  2472. LONG
  2473. WINAPI
  2474. lineGetAddressID(
  2475.     HLINE               hLine,
  2476.     LPDWORD             lpdwAddressID,
  2477.     DWORD               dwAddressMode,
  2478.     LPCSTR              lpsAddress,
  2479.     DWORD               dwSize
  2480.     );
  2481.  
  2482. #if WIN32
  2483. LONG
  2484. WINAPI
  2485. lineGetAddressIDA(
  2486.     HLINE               hLine,
  2487.     LPDWORD             lpdwAddressID,
  2488.     DWORD               dwAddressMode,
  2489.     LPCSTR              lpsAddress,
  2490.     DWORD               dwSize
  2491.     );
  2492.  
  2493. LONG
  2494. WINAPI
  2495. lineGetAddressIDW(
  2496.     HLINE               hLine,
  2497.     LPDWORD             lpdwAddressID,
  2498.     DWORD               dwAddressMode,
  2499.     LPCWSTR             lpsAddress,
  2500.     DWORD               dwSize
  2501.     );
  2502.  
  2503. #ifdef UNICODE
  2504. #define lineGetAddressID lineGetAddressIDW
  2505. #else
  2506. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2507. #define lineGetAddressID lineGetAddressIDA
  2508. #endif
  2509. #endif
  2510.  
  2511. #endif
  2512.  
  2513. LONG
  2514. WINAPI
  2515. lineGetAddressStatus(
  2516.     HLINE               hLine,
  2517.     DWORD               dwAddressID,
  2518.     LPLINEADDRESSSTATUS lpAddressStatus
  2519.     );
  2520.  
  2521. #if WIN32
  2522. LONG
  2523. WINAPI
  2524. lineGetAddressStatusA(
  2525.     HLINE               hLine,
  2526.     DWORD               dwAddressID,
  2527.     LPLINEADDRESSSTATUS lpAddressStatus
  2528.     );
  2529.  
  2530. LONG
  2531. WINAPI
  2532. lineGetAddressStatusW(
  2533.     HLINE               hLine,
  2534.     DWORD               dwAddressID,
  2535.     LPLINEADDRESSSTATUS lpAddressStatus
  2536.     );
  2537.  
  2538. #ifdef UNICODE
  2539. #define lineGetAddressStatus lineGetAddressStatusW
  2540. #else
  2541. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2542. #define lineGetAddressStatus lineGetAddressStatusA
  2543. #endif
  2544. #endif
  2545.  
  2546. #endif
  2547.  
  2548. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2549. LONG
  2550. WINAPI
  2551. lineGetAgentActivityListA(                                       // TAPI v2.0
  2552.     HLINE                   hLine,
  2553.     DWORD                   dwAddressID,
  2554.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2555.     );
  2556.  
  2557. LONG
  2558. WINAPI
  2559. lineGetAgentActivityListW(                                       // TAPI v2.0
  2560.     HLINE                   hLine,
  2561.     DWORD                   dwAddressID,
  2562.     LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2563.     );
  2564.  
  2565. #ifdef UNICODE
  2566. #define lineGetAgentActivityList lineGetAgentActivityListW
  2567. #else
  2568. #define lineGetAgentActivityList lineGetAgentActivityListA
  2569. #endif
  2570.  
  2571.  
  2572. LONG
  2573. WINAPI
  2574. lineGetAgentCapsA(                                               // TAPI v2.0
  2575.     HLINEAPP            hLineApp,
  2576.     DWORD               dwDeviceID,
  2577.     DWORD               dwAddressID,
  2578.     DWORD               dwAppAPIVersion,
  2579.     LPLINEAGENTCAPS     lpAgentCaps
  2580.     );
  2581.  
  2582. LONG
  2583. WINAPI
  2584. lineGetAgentCapsW(                                               // TAPI v2.0
  2585.     HLINEAPP            hLineApp,
  2586.     DWORD               dwDeviceID,
  2587.     DWORD               dwAddressID,
  2588.     DWORD               dwAppAPIVersion,
  2589.     LPLINEAGENTCAPS     lpAgentCaps
  2590.     );
  2591.  
  2592. #ifdef UNICODE
  2593. #define lineGetAgentCaps lineGetAgentCapsW
  2594. #else
  2595. #define lineGetAgentCaps lineGetAgentCapsA
  2596. #endif
  2597.  
  2598.  
  2599. LONG
  2600. WINAPI
  2601. lineGetAgentGroupListA(                                          // TAPI v2.0
  2602.     HLINE                   hLine,
  2603.     DWORD                   dwAddressID,
  2604.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  2605.     );
  2606.  
  2607. LONG
  2608. WINAPI
  2609. lineGetAgentGroupListW(                                          // TAPI v2.0
  2610.     HLINE                   hLine,
  2611.     DWORD                   dwAddressID,
  2612.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  2613.     );
  2614.  
  2615. #ifdef UNICODE
  2616. #define lineGetAgentGroupList lineGetAgentGroupListW
  2617. #else
  2618. #define lineGetAgentGroupList lineGetAgentGroupListA
  2619. #endif
  2620.  
  2621. LONG
  2622. WINAPI
  2623. lineGetAgentStatusA(                                             // TAPI v2.0
  2624.     HLINE               hLine,
  2625.     DWORD               dwAddressID,
  2626.     LPLINEAGENTSTATUS   lpAgentStatus
  2627.     );
  2628.  
  2629. LONG
  2630. WINAPI
  2631. lineGetAgentStatusW(                                             // TAPI v2.0
  2632.     HLINE               hLine,
  2633.     DWORD               dwAddressID,
  2634.     LPLINEAGENTSTATUS   lpAgentStatus
  2635.     );
  2636.  
  2637. #ifdef UNICODE
  2638. #define lineGetAgentStatus lineGetAgentStatusW
  2639. #else
  2640. #define lineGetAgentStatus lineGetAgentStatusA
  2641. #endif
  2642.  
  2643. #endif
  2644.  
  2645. LONG
  2646. WINAPI
  2647. lineGetAppPriority(                                             // TAPI v1.4
  2648.     LPCSTR              lpszAppFilename,
  2649.     DWORD               dwMediaMode,
  2650.     LPLINEEXTENSIONID   lpExtensionID,
  2651.     DWORD               dwRequestMode,
  2652.     LPVARSTRING         lpExtensionName,
  2653.     LPDWORD             lpdwPriority
  2654.     );
  2655.  
  2656. #if WIN32
  2657. LONG
  2658. WINAPI
  2659. lineGetAppPriorityA(                                            // TAPI v1.4
  2660.     LPCSTR              lpszAppFilename,
  2661.     DWORD               dwMediaMode,
  2662.     LPLINEEXTENSIONID   lpExtensionID,
  2663.     DWORD               dwRequestMode,
  2664.     LPVARSTRING         lpExtensionName,
  2665.     LPDWORD             lpdwPriority
  2666.     );
  2667.  
  2668. LONG
  2669. WINAPI
  2670. lineGetAppPriorityW(                                             // TAPI v1.4
  2671.     LPCWSTR             lpszAppFilename,
  2672.     DWORD               dwMediaMode,
  2673.     LPLINEEXTENSIONID   lpExtensionID,
  2674.     DWORD               dwRequestMode,
  2675.     LPVARSTRING         lpExtensionName,
  2676.     LPDWORD             lpdwPriority
  2677.     );
  2678.  
  2679. #ifdef UNICODE
  2680. #define lineGetAppPriority lineGetAppPriorityW
  2681. #else
  2682. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2683. #define lineGetAppPriority lineGetAppPriorityA
  2684. #endif
  2685. #endif
  2686.  
  2687. #endif
  2688.  
  2689. LONG
  2690. WINAPI
  2691. lineGetCallInfo(
  2692.     HCALL               hCall,
  2693.     LPLINECALLINFO      lpCallInfo
  2694.     );
  2695.  
  2696. #if WIN32
  2697. LONG
  2698. WINAPI
  2699. lineGetCallInfoA(
  2700.     HCALL               hCall,
  2701.     LPLINECALLINFO      lpCallInfo
  2702.     );
  2703.  
  2704. LONG
  2705. WINAPI
  2706. lineGetCallInfoW(
  2707.     HCALL               hCall,
  2708.     LPLINECALLINFO      lpCallInfo
  2709.     );
  2710.  
  2711. #ifdef UNICODE
  2712. #define lineGetCallInfo lineGetCallInfoW
  2713. #else
  2714. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2715. #define lineGetCallInfo lineGetCallInfoA
  2716. #endif
  2717. #endif
  2718.  
  2719. #endif
  2720.  
  2721. LONG
  2722. WINAPI
  2723. lineGetCallStatus(
  2724.     HCALL               hCall,
  2725.     LPLINECALLSTATUS    lpCallStatus
  2726.     );
  2727.  
  2728. LONG
  2729. WINAPI
  2730. lineGetConfRelatedCalls(
  2731.     HCALL               hCall,
  2732.     LPLINECALLLIST      lpCallList
  2733.     );
  2734.     
  2735. LONG
  2736. WINAPI
  2737. lineGetCountry(                                                 // TAPI v1.4
  2738.     DWORD               dwCountryID,
  2739.     DWORD               dwAPIVersion,
  2740.     LPLINECOUNTRYLIST   lpLineCountryList
  2741.     );
  2742.  
  2743. #if WIN32
  2744. LONG
  2745. WINAPI
  2746. lineGetCountryA(                                                 // TAPI v1.4
  2747.     DWORD               dwCountryID,
  2748.     DWORD               dwAPIVersion,
  2749.     LPLINECOUNTRYLIST   lpLineCountryList
  2750.     );
  2751.  
  2752. LONG
  2753. WINAPI
  2754. lineGetCountryW(                                                // TAPI v1.4
  2755.     DWORD               dwCountryID,
  2756.     DWORD               dwAPIVersion,
  2757.     LPLINECOUNTRYLIST   lpLineCountryList
  2758.     );
  2759.  
  2760. #ifdef UNICODE
  2761. #define lineGetCountry lineGetCountryW
  2762. #else
  2763. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2764. #define lineGetCountry lineGetCountryA
  2765. #endif
  2766. #endif
  2767.  
  2768. #endif
  2769.  
  2770.  
  2771. LONG
  2772. WINAPI
  2773. lineGetDevCaps(
  2774.     HLINEAPP            hLineApp,
  2775.     DWORD               dwDeviceID,
  2776.     DWORD               dwAPIVersion,
  2777.     DWORD               dwExtVersion,
  2778.     LPLINEDEVCAPS       lpLineDevCaps
  2779.     );
  2780.  
  2781. #if WIN32
  2782. LONG
  2783. WINAPI
  2784. lineGetDevCapsA(
  2785.     HLINEAPP            hLineApp,
  2786.     DWORD               dwDeviceID,
  2787.     DWORD               dwAPIVersion,
  2788.     DWORD               dwExtVersion,
  2789.     LPLINEDEVCAPS       lpLineDevCaps
  2790.     );
  2791.  
  2792. LONG
  2793. WINAPI
  2794. lineGetDevCapsW(
  2795.     HLINEAPP            hLineApp,
  2796.     DWORD               dwDeviceID,
  2797.     DWORD               dwAPIVersion,
  2798.     DWORD               dwExtVersion,
  2799.     LPLINEDEVCAPS       lpLineDevCaps
  2800.     );
  2801.  
  2802. #ifdef UNICODE
  2803. #define lineGetDevCaps lineGetDevCapsW
  2804. #else
  2805. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2806. #define lineGetDevCaps lineGetDevCapsA
  2807. #endif
  2808. #endif
  2809.  
  2810. #endif
  2811.  
  2812. LONG
  2813. WINAPI
  2814. lineGetDevConfig(
  2815.     DWORD               dwDeviceID,
  2816.     LPVARSTRING         lpDeviceConfig,
  2817.     LPCSTR              lpszDeviceClass
  2818.     );
  2819.  
  2820. #if WIN32
  2821. LONG
  2822. WINAPI
  2823. lineGetDevConfigA(
  2824.     DWORD               dwDeviceID,
  2825.     LPVARSTRING         lpDeviceConfig,
  2826.     LPCSTR              lpszDeviceClass
  2827.     );
  2828.  
  2829. LONG
  2830. WINAPI
  2831. lineGetDevConfigW(
  2832.     DWORD               dwDeviceID,
  2833.     LPVARSTRING         lpDeviceConfig,
  2834.     LPCWSTR             lpszDeviceClass
  2835.     );
  2836.  
  2837. #ifdef UNICODE
  2838. #define lineGetDevConfig lineGetDevConfigW
  2839. #else
  2840. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2841. #define lineGetDevConfig lineGetDevConfigA
  2842. #endif
  2843. #endif
  2844.  
  2845. #endif
  2846.  
  2847. LONG
  2848. WINAPI
  2849. lineGetNewCalls(
  2850.     HLINE               hLine,
  2851.     DWORD               dwAddressID,
  2852.     DWORD               dwSelect,
  2853.     LPLINECALLLIST      lpCallList
  2854.     );
  2855.  
  2856. LONG
  2857. WINAPI
  2858. lineGetIcon(
  2859.     DWORD               dwDeviceID,
  2860.     LPCSTR              lpszDeviceClass,
  2861.     LPHICON             lphIcon
  2862.     );
  2863.  
  2864. #if WIN32
  2865. LONG
  2866. WINAPI
  2867. lineGetIconA(
  2868.     DWORD               dwDeviceID,
  2869.     LPCSTR              lpszDeviceClass,
  2870.     LPHICON             lphIcon
  2871.     );
  2872.  
  2873. LONG
  2874. WINAPI
  2875. lineGetIconW(
  2876.     DWORD               dwDeviceID,
  2877.     LPCWSTR             lpszDeviceClass,
  2878.     LPHICON             lphIcon
  2879.     );
  2880.  
  2881. #ifdef UNICODE
  2882. #define lineGetIcon lineGetIconW
  2883. #else
  2884. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2885. #define lineGetIcon lineGetIconA
  2886. #endif
  2887. #endif
  2888.  
  2889. #endif
  2890.     
  2891. LONG
  2892. WINAPI
  2893. lineGetID(
  2894.     HLINE               hLine,
  2895.     DWORD               dwAddressID,
  2896.     HCALL               hCall,
  2897.     DWORD               dwSelect,
  2898.     LPVARSTRING         lpDeviceID,
  2899.     LPCSTR              lpszDeviceClass
  2900.     );
  2901.  
  2902. #if WIN32
  2903. LONG
  2904. WINAPI
  2905. lineGetIDA(
  2906.     HLINE               hLine,
  2907.     DWORD               dwAddressID,
  2908.     HCALL               hCall,
  2909.     DWORD               dwSelect,
  2910.     LPVARSTRING         lpDeviceID,
  2911.     LPCSTR              lpszDeviceClass
  2912.     );
  2913.  
  2914. LONG
  2915. WINAPI
  2916. lineGetIDW(
  2917.     HLINE               hLine,
  2918.     DWORD               dwAddressID,
  2919.     HCALL               hCall,
  2920.     DWORD               dwSelect,
  2921.     LPVARSTRING         lpDeviceID,
  2922.     LPCWSTR             lpszDeviceClass
  2923.     );
  2924.  
  2925. #ifdef UNICODE
  2926. #define lineGetID lineGetIDW
  2927. #else
  2928. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2929. #define lineGetID lineGetIDA
  2930. #endif
  2931. #endif
  2932.  
  2933. #endif
  2934.  
  2935. LONG
  2936. WINAPI
  2937. lineGetLineDevStatus(
  2938.     HLINE               hLine,
  2939.     LPLINEDEVSTATUS     lpLineDevStatus
  2940.     );
  2941.  
  2942. #if WIN32
  2943. LONG
  2944. WINAPI
  2945. lineGetLineDevStatusA(
  2946.     HLINE               hLine,
  2947.     LPLINEDEVSTATUS     lpLineDevStatus
  2948.     );
  2949.  
  2950. LONG
  2951. WINAPI
  2952. lineGetLineDevStatusW(
  2953.     HLINE               hLine,
  2954.     LPLINEDEVSTATUS     lpLineDevStatus
  2955.     );
  2956.  
  2957. #ifdef UNICODE
  2958. #define lineGetDevStatus lineGetDevStatusW
  2959. #else
  2960. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2961. #define lineGetDevStatus lineGetDevStatusA
  2962. #endif
  2963. #endif
  2964.  
  2965. #endif
  2966.  
  2967. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  2968. LONG
  2969. WINAPI
  2970. lineGetMessage(                                                 // TAPI v2.0
  2971.     HLINEAPP        hLineApp,
  2972.     LPLINEMESSAGE   lpMessage,
  2973.     DWORD           dwTimeout
  2974.     );
  2975. #endif
  2976.  
  2977. LONG
  2978. WINAPI
  2979. lineGetNumRings(
  2980.     HLINE               hLine,
  2981.     DWORD               dwAddressID,
  2982.     LPDWORD             lpdwNumRings
  2983.     );
  2984.  
  2985. LONG
  2986. WINAPI
  2987. lineGetProviderList(                                            // TAPI v1.4
  2988.     DWORD               dwAPIVersion,
  2989.     LPLINEPROVIDERLIST  lpProviderList
  2990.     );
  2991.  
  2992. #if WIN32
  2993. LONG
  2994. WINAPI
  2995. lineGetProviderListA(
  2996.     DWORD               dwAPIVersion,
  2997.     LPLINEPROVIDERLIST  lpProviderList
  2998.     );
  2999.  
  3000. LONG
  3001. WINAPI
  3002. lineGetProviderListW(
  3003.     DWORD               dwAPIVersion,
  3004.     LPLINEPROVIDERLIST  lpProviderList
  3005.     );
  3006.  
  3007. #ifdef UNICODE
  3008. #define lineGetProviderList lineGetProviderListW
  3009. #else
  3010. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3011. #define lineGetProviderList lineGetProviderListA
  3012. #endif
  3013. #endif
  3014.  
  3015. #endif
  3016.  
  3017. LONG
  3018. WINAPI
  3019. lineGetRequest(
  3020.     HLINEAPP            hLineApp,
  3021.     DWORD               dwRequestMode,
  3022.     LPVOID              lpRequestBuffer
  3023.     );
  3024.  
  3025. #if WIN32
  3026. LONG
  3027. WINAPI
  3028. lineGetRequestA(
  3029.     HLINEAPP            hLineApp,
  3030.     DWORD               dwRequestMode,
  3031.     LPVOID              lpRequestBuffer
  3032.     );
  3033.  
  3034. LONG
  3035. WINAPI
  3036. lineGetRequestW(
  3037.     HLINEAPP            hLineApp,
  3038.     DWORD               dwRequestMode,
  3039.     LPVOID              lpRequestBuffer
  3040.     );
  3041.  
  3042. #ifdef UNICODE
  3043. #define lineGetRequest lineGetRequestW
  3044. #else
  3045. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3046. #define lineGetRequest lineGetRequestA
  3047. #endif
  3048. #endif
  3049.  
  3050. #endif
  3051.  
  3052. LONG
  3053. WINAPI
  3054. lineGetStatusMessages(
  3055.     HLINE               hLine,
  3056.     LPDWORD             lpdwLineStates,
  3057.     LPDWORD             lpdwAddressStates
  3058.     );
  3059.  
  3060. LONG
  3061. WINAPI
  3062. lineGetTranslateCaps(
  3063.     HLINEAPP hLineApp,
  3064.     DWORD dwAPIVersion,
  3065.     LPLINETRANSLATECAPS lpTranslateCaps
  3066.     );
  3067.  
  3068. #if WIN32
  3069. LONG
  3070. WINAPI
  3071. lineGetTranslateCapsA(
  3072.     HLINEAPP hLineApp,
  3073.     DWORD dwAPIVersion,
  3074.     LPLINETRANSLATECAPS lpTranslateCaps
  3075.     );
  3076.  
  3077. LONG
  3078. WINAPI
  3079. lineGetTranslateCapsW(
  3080.     HLINEAPP hLineApp,
  3081.     DWORD dwAPIVersion,
  3082.     LPLINETRANSLATECAPS lpTranslateCaps
  3083.     );
  3084.  
  3085. #ifdef UNICODE
  3086. #define lineGetTranslateCaps lineGetTranslateCapsW
  3087. #else
  3088. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3089. #define lineGetTranslateCaps lineGetTranslateCapsA
  3090. #endif
  3091. #endif
  3092.  
  3093. #endif
  3094.  
  3095.  
  3096. LONG
  3097. WINAPI
  3098. lineHandoff(
  3099.     HCALL               hCall,
  3100.     LPCSTR              lpszFileName,
  3101.     DWORD               dwMediaMode
  3102.     );
  3103.  
  3104. #if WIN32
  3105. LONG
  3106. WINAPI
  3107. lineHandoffA(
  3108.     HCALL               hCall,
  3109.     LPCSTR              lpszFileName,
  3110.     DWORD               dwMediaMode
  3111.     );
  3112.  
  3113. LONG
  3114. WINAPI
  3115. lineHandoffW(
  3116.     HCALL               hCall,
  3117.     LPCWSTR             lpszFileName,
  3118.     DWORD               dwMediaMode
  3119.     );
  3120.  
  3121. #ifdef UNICODE
  3122. #define lineHandoff lineHandoffW
  3123. #else
  3124. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3125. #define lineHandoff lineHandoffA
  3126. #endif
  3127. #endif
  3128.  
  3129. #endif
  3130.  
  3131. LONG
  3132. WINAPI
  3133. lineHold(
  3134.     HCALL               hCall
  3135.     );
  3136.  
  3137. LONG
  3138. WINAPI
  3139. lineInitialize(
  3140.     LPHLINEAPP          lphLineApp,
  3141.     HINSTANCE           hInstance,
  3142.     LINECALLBACK        lpfnCallback,
  3143.     LPCSTR              lpszAppName,
  3144.     LPDWORD             lpdwNumDevs
  3145.     );
  3146.  
  3147. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3148. LONG
  3149. WINAPI
  3150. lineInitializeExA(                                               // TAPI v2.0
  3151.     LPHLINEAPP                  lphLineApp,
  3152.     HINSTANCE                   hInstance,
  3153.     LINECALLBACK                lpfnCallback,
  3154.     LPCSTR                      lpszFriendlyAppName,
  3155.     LPDWORD                     lpdwNumDevs,
  3156.     LPDWORD                     lpdwAPIVersion,
  3157.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3158.     );
  3159.  
  3160. LONG
  3161. WINAPI
  3162. lineInitializeExW(                                               // TAPI v2.0
  3163.     LPHLINEAPP                  lphLineApp,
  3164.     HINSTANCE                   hInstance,
  3165.     LINECALLBACK                lpfnCallback,
  3166.     LPCWSTR                     lpszFriendlyAppName,
  3167.     LPDWORD                     lpdwNumDevs,
  3168.     LPDWORD                     lpdwAPIVersion,
  3169.     LPLINEINITIALIZEEXPARAMS    lpLineInitializeExParams
  3170.     );
  3171.  
  3172. #ifdef UNICODE
  3173. #define lineInitializeEx lineInitializeExW
  3174. #else
  3175. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3176. #define lineInitializeEx lineInitializeExA
  3177. #endif
  3178. #endif
  3179.  
  3180. #endif
  3181.  
  3182.  
  3183. LONG
  3184. WINAPI
  3185. lineMakeCall(
  3186.     HLINE               hLine,
  3187.     LPHCALL             lphCall,
  3188.     LPCSTR              lpszDestAddress,
  3189.     DWORD               dwCountryCode,
  3190.     LPLINECALLPARAMS    const lpCallParams
  3191.     );
  3192.  
  3193. #if WIN32
  3194. LONG
  3195. WINAPI
  3196. lineMakeCallA(
  3197.     HLINE               hLine,
  3198.     LPHCALL             lphCall,
  3199.     LPCSTR              lpszDestAddress,
  3200.     DWORD               dwCountryCode,
  3201.     LPLINECALLPARAMS    const lpCallParams
  3202.     );
  3203.  
  3204. LONG
  3205. WINAPI
  3206. lineMakeCallW(
  3207.     HLINE               hLine,
  3208.     LPHCALL             lphCall,
  3209.     LPCWSTR             lpszDestAddress,
  3210.     DWORD               dwCountryCode,
  3211.     LPLINECALLPARAMS    const lpCallParams
  3212.     );
  3213.  
  3214. #ifdef UNICODE
  3215. #define lineMakeCall lineMakeCallW
  3216. #else
  3217. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3218. #define lineMakeCall lineMakeCallA
  3219. #endif
  3220. #endif
  3221.  
  3222. #endif
  3223.  
  3224. LONG
  3225. WINAPI
  3226. lineMonitorDigits(
  3227.     HCALL               hCall,
  3228.     DWORD               dwDigitModes
  3229.     );
  3230.  
  3231. LONG
  3232. WINAPI
  3233. lineMonitorMedia(
  3234.     HCALL               hCall,
  3235.     DWORD               dwMediaModes
  3236.     );
  3237.  
  3238. LONG
  3239. WINAPI
  3240. lineMonitorTones(
  3241.     HCALL               hCall,
  3242.     LPLINEMONITORTONE   const lpToneList,
  3243.     DWORD               dwNumEntries
  3244.     );
  3245.  
  3246. LONG
  3247. WINAPI
  3248. lineNegotiateAPIVersion(
  3249.     HLINEAPP            hLineApp,
  3250.     DWORD               dwDeviceID,
  3251.     DWORD               dwAPILowVersion,
  3252.     DWORD               dwAPIHighVersion,
  3253.     LPDWORD             lpdwAPIVersion,
  3254.     LPLINEEXTENSIONID   lpExtensionID
  3255.     );
  3256.  
  3257. LONG
  3258. WINAPI
  3259. lineNegotiateExtVersion(
  3260.     HLINEAPP            hLineApp,
  3261.     DWORD               dwDeviceID,
  3262.     DWORD               dwAPIVersion,
  3263.     DWORD               dwExtLowVersion,
  3264.     DWORD               dwExtHighVersion,
  3265.     LPDWORD             lpdwExtVersion
  3266.     );
  3267.  
  3268. LONG
  3269. WINAPI
  3270. lineOpen(
  3271.     HLINEAPP hLineApp, 
  3272.     DWORD dwDeviceID,
  3273.     LPHLINE lphLine,
  3274.     DWORD               dwAPIVersion,
  3275.     DWORD               dwExtVersion,
  3276.     DWORD               dwCallbackInstance,
  3277.     DWORD               dwPrivileges,
  3278.     DWORD               dwMediaModes,
  3279.     LPLINECALLPARAMS    const lpCallParams
  3280.     );
  3281.  
  3282. #if WIN32
  3283. LONG
  3284. WINAPI
  3285. lineOpenA(
  3286.     HLINEAPP hLineApp, 
  3287.     DWORD dwDeviceID,
  3288.     LPHLINE lphLine,
  3289.     DWORD               dwAPIVersion,
  3290.     DWORD               dwExtVersion,
  3291.     DWORD               dwCallbackInstance,
  3292.     DWORD               dwPrivileges,
  3293.     DWORD               dwMediaModes,
  3294.     LPLINECALLPARAMS    const lpCallParams
  3295.     );
  3296.  
  3297. LONG
  3298. WINAPI
  3299. lineOpenW(
  3300.     HLINEAPP hLineApp, 
  3301.     DWORD dwDeviceID,
  3302.     LPHLINE lphLine,
  3303.     DWORD               dwAPIVersion,
  3304.     DWORD               dwExtVersion,
  3305.     DWORD               dwCallbackInstance,
  3306.     DWORD               dwPrivileges,
  3307.     DWORD               dwMediaModes,
  3308.     LPLINECALLPARAMS    const lpCallParams
  3309.     );
  3310.  
  3311. #ifdef UNICODE
  3312. #define lineOpen lineOpenW
  3313. #else
  3314. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3315. #define lineOpen lineOpenA
  3316. #endif
  3317. #endif
  3318.  
  3319. #endif
  3320.  
  3321. LONG
  3322. WINAPI
  3323. linePark(
  3324.     HCALL               hCall,
  3325.     DWORD               dwParkMode,
  3326.     LPCSTR              lpszDirAddress,
  3327.     LPVARSTRING         lpNonDirAddress
  3328.     );
  3329.  
  3330. #if WIN32
  3331. LONG
  3332. WINAPI
  3333. lineParkA(
  3334.     HCALL               hCall,
  3335.     DWORD               dwParkMode,
  3336.     LPCSTR              lpszDirAddress,
  3337.     LPVARSTRING         lpNonDirAddress
  3338.     );
  3339.  
  3340. LONG
  3341. WINAPI
  3342. lineParkW(
  3343.     HCALL               hCall,
  3344.     DWORD               dwParkMode,
  3345.     LPCWSTR             lpszDirAddress,
  3346.     LPVARSTRING         lpNonDirAddress
  3347.     );
  3348.  
  3349. #ifdef UNICODE
  3350. #define linePark lineParkW
  3351. #else
  3352. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3353. #define linePark lineParkA
  3354. #endif
  3355. #endif
  3356.  
  3357. #endif
  3358.  
  3359. LONG
  3360. WINAPI
  3361. linePickup(
  3362.     HLINE               hLine,
  3363.     DWORD               dwAddressID,
  3364.     LPHCALL             lphCall,
  3365.     LPCSTR              lpszDestAddress,
  3366.     LPCSTR              lpszGroupID
  3367.     );
  3368.  
  3369. #if WIN32
  3370. LONG
  3371. WINAPI
  3372. linePickupA(
  3373.     HLINE               hLine,
  3374.     DWORD               dwAddressID,
  3375.     LPHCALL             lphCall,
  3376.     LPCSTR              lpszDestAddress,
  3377.     LPCSTR              lpszGroupID
  3378.     );
  3379.  
  3380. LONG
  3381. WINAPI
  3382. linePickupW(
  3383.     HLINE               hLine,
  3384.     DWORD               dwAddressID,
  3385.     LPHCALL             lphCall,
  3386.     LPCWSTR             lpszDestAddress,
  3387.     LPCWSTR             lpszGroupID
  3388.     );
  3389.  
  3390. #ifdef UNICODE
  3391. #define linePickup linePickupW
  3392. #else
  3393. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3394. #define linePickup linePickupA
  3395. #endif
  3396. #endif
  3397.  
  3398. #endif
  3399.  
  3400. LONG
  3401. WINAPI
  3402. linePrepareAddToConference(
  3403.     HCALL               hConfCall,
  3404.     LPHCALL             lphConsultCall,
  3405.     LPLINECALLPARAMS    const lpCallParams
  3406.     );
  3407.  
  3408. #if WIN32
  3409. LONG
  3410. WINAPI
  3411. linePrepareAddToConferenceA(
  3412.     HCALL               hConfCall,
  3413.     LPHCALL             lphConsultCall,
  3414.     LPLINECALLPARAMS    const lpCallParams
  3415.     );
  3416.  
  3417. LONG
  3418. WINAPI
  3419. linePrepareAddToConferenceW(
  3420.     HCALL               hConfCall,
  3421.     LPHCALL             lphConsultCall,
  3422.     LPLINECALLPARAMS    const lpCallParams
  3423.     );
  3424.  
  3425. #ifdef UNICODE
  3426. #define linePrepareAddToConference linePrepareAddToConferenceW
  3427. #else
  3428. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3429. #define linePrepareAddToConference linePrepareAddToConferenceA
  3430. #endif
  3431. #endif
  3432.  
  3433. #endif
  3434.  
  3435. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3436. LONG
  3437. WINAPI
  3438. lineProxyMessage(                                               // TAPI v2.0
  3439.     HLINE               hLine,
  3440.     HCALL               hCall,
  3441.     DWORD               dwMsg,
  3442.     DWORD               dwParam1,
  3443.     DWORD               dwParam2,
  3444.     DWORD               dwParam3
  3445.     );
  3446.  
  3447. LONG
  3448. WINAPI
  3449. lineProxyResponse(                                              // TAPI v2.0
  3450.     HLINE               hLine,
  3451.     LPLINEPROXYREQUEST  lpProxyRequest,
  3452.     DWORD               dwResult
  3453.     );
  3454. #endif
  3455.  
  3456. LONG
  3457. WINAPI
  3458. lineRedirect(
  3459.     HCALL               hCall,
  3460.     LPCSTR              lpszDestAddress,
  3461.     DWORD               dwCountryCode
  3462.     );
  3463.  
  3464. #if WIN32
  3465. LONG
  3466. WINAPI
  3467. lineRedirectA(
  3468.     HCALL               hCall,
  3469.     LPCSTR              lpszDestAddress,
  3470.     DWORD               dwCountryCode
  3471.     );
  3472.  
  3473. LONG
  3474. WINAPI
  3475. lineRedirectW(
  3476.     HCALL               hCall,
  3477.     LPCWSTR             lpszDestAddress,
  3478.     DWORD               dwCountryCode
  3479.     );
  3480.  
  3481. #ifdef UNICODE
  3482. #define lineRedirect lineRedirectW
  3483. #else
  3484. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3485. #define lineRedirect lineRedirectA
  3486. #endif
  3487. #endif
  3488.  
  3489. #endif
  3490.  
  3491. LONG
  3492. WINAPI
  3493. lineRegisterRequestRecipient(
  3494.     HLINEAPP            hLineApp,
  3495.     DWORD               dwRegistrationInstance,
  3496.     DWORD               dwRequestMode,
  3497.     DWORD               bEnable
  3498.     );
  3499.  
  3500. LONG
  3501. WINAPI
  3502. lineReleaseUserUserInfo(                                        // TAPI v1.4
  3503.     HCALL               hCall
  3504.     );
  3505.  
  3506. LONG
  3507. WINAPI
  3508. lineRemoveFromConference(
  3509.     HCALL               hCall
  3510.     );
  3511.  
  3512. LONG
  3513. WINAPI
  3514. lineRemoveProvider(                                             // TAPI v1.4
  3515.     DWORD               dwPermanentProviderID,
  3516.     HWND                hwndOwner
  3517.     );
  3518.  
  3519. LONG
  3520. WINAPI
  3521. lineSecureCall(
  3522.     HCALL               hCall
  3523.     );
  3524.  
  3525. LONG
  3526. WINAPI
  3527. lineSendUserUserInfo(
  3528.     HCALL               hCall,
  3529.     LPCSTR              lpsUserUserInfo,
  3530.     DWORD               dwSize
  3531.     );
  3532.  
  3533. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3534. LONG
  3535. WINAPI
  3536. lineSetAgentActivity(                                           // TAPI v2.0
  3537.     HLINE               hLine,
  3538.     DWORD               dwAddressID,
  3539.     DWORD               dwActivityID
  3540.     );
  3541.  
  3542. LONG
  3543. WINAPI
  3544. lineSetAgentGroup(                                              // TAPI v2.0
  3545.     HLINE                   hLine,
  3546.     DWORD                   dwAddressID,
  3547.     LPLINEAGENTGROUPLIST    lpAgentGroupList
  3548.     );
  3549.  
  3550. LONG
  3551. WINAPI
  3552. lineSetAgentState(                                              // TAPI v2.0
  3553.     HLINE               hLine,
  3554.     DWORD               dwAddressID,
  3555.     DWORD               dwAgentState,
  3556.     DWORD               dwNextAgentState
  3557.     );
  3558. #endif
  3559.  
  3560. LONG
  3561. WINAPI
  3562. lineSetAppPriority(                                             // TAPI v1.4
  3563.     LPCSTR              lpszAppFilename,
  3564.     DWORD               dwMediaMode,
  3565.     LPLINEEXTENSIONID   lpExtensionID,
  3566.     DWORD               dwRequestMode,
  3567.     LPCSTR              lpszExtensionName,
  3568.     DWORD               dwPriority
  3569.     );
  3570.  
  3571. #if WIN32
  3572. LONG
  3573. WINAPI
  3574. lineSetAppPriorityA(                                             // TAPI v1.4
  3575.     LPCSTR              lpszAppFilename,
  3576.     DWORD               dwMediaMode,
  3577.     LPLINEEXTENSIONID   lpExtensionID,
  3578.     DWORD               dwRequestMode,
  3579.     LPCSTR              lpszExtensionName,
  3580.     DWORD               dwPriority
  3581.     );
  3582.  
  3583. LONG
  3584. WINAPI
  3585. lineSetAppPriorityW(                                             // TAPI v1.4
  3586.     LPCWSTR             lpszAppFilename,
  3587.     DWORD               dwMediaMode,
  3588.     LPLINEEXTENSIONID   lpExtensionID,
  3589.     DWORD               dwRequestMode,
  3590.     LPCWSTR             lpszExtensionName,
  3591.     DWORD               dwPriority
  3592.     );
  3593.  
  3594. #ifdef UNICODE
  3595. #define lineSetAppPriority lineSetAppPriorityW
  3596. #else
  3597. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3598. #define lineSetAppPriority lineSetAppPriorityA
  3599. #endif
  3600. #endif
  3601.  
  3602. #endif
  3603.  
  3604. LONG
  3605. WINAPI
  3606. lineSetAppSpecific(
  3607.     HCALL               hCall,
  3608.     DWORD               dwAppSpecific
  3609.     );
  3610.  
  3611. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3612. LONG
  3613. WINAPI
  3614. lineSetCallData(                                                // TAPI v2.0
  3615.     HCALL               hCall,
  3616.     LPVOID              lpCallData,
  3617.     DWORD               dwSize
  3618.     );
  3619. #endif
  3620.  
  3621. LONG
  3622. WINAPI
  3623. lineSetCallParams(
  3624.     HCALL               hCall,
  3625.     DWORD               dwBearerMode,
  3626.     DWORD               dwMinRate,
  3627.     DWORD               dwMaxRate,
  3628.     LPLINEDIALPARAMS    const lpDialParams
  3629.     );
  3630.  
  3631. LONG
  3632. WINAPI
  3633. lineSetCallPrivilege(
  3634.     HCALL               hCall,
  3635.     DWORD               dwCallPrivilege
  3636.     );
  3637.  
  3638. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3639. LONG
  3640. WINAPI
  3641. lineSetCallQualityOfService(                                    // TAPI v2.0
  3642.     HCALL               hCall,
  3643.     LPVOID              lpSendingFlowspec,
  3644.     DWORD               dwSendingFlowspecSize,
  3645.     LPVOID              lpReceivingFlowspec,
  3646.     DWORD               dwReceivingFlowspecSize
  3647.     );
  3648.  
  3649. LONG
  3650. WINAPI
  3651. lineSetCallTreatment(                                           // TAPI v2.0
  3652.     HCALL               hCall,
  3653.     DWORD               dwTreatment
  3654.     );
  3655. #endif
  3656.  
  3657. LONG
  3658. WINAPI
  3659. lineSetCurrentLocation(
  3660.     HLINEAPP            hLineApp,
  3661.     DWORD               dwLocation
  3662.     );
  3663.  
  3664. LONG
  3665. WINAPI
  3666. lineSetDevConfig(
  3667.     DWORD               dwDeviceID,
  3668.     LPVOID              const lpDeviceConfig,
  3669.     DWORD               dwSize,
  3670.     LPCSTR              lpszDeviceClass
  3671.     );
  3672.  
  3673. #if WIN32
  3674. LONG
  3675. WINAPI
  3676. lineSetDevConfigA(
  3677.     DWORD               dwDeviceID,
  3678.     LPVOID              const lpDeviceConfig,
  3679.     DWORD               dwSize,
  3680.     LPCSTR              lpszDeviceClass
  3681.     );
  3682.  
  3683. LONG
  3684. WINAPI
  3685. lineSetDevConfigW(
  3686.     DWORD               dwDeviceID,
  3687.     LPVOID              const lpDeviceConfig,
  3688.     DWORD               dwSize,
  3689.     LPCWSTR             lpszDeviceClass
  3690.     );
  3691.  
  3692. #ifdef UNICODE
  3693. #define lineSetDevConfig lineSetDevConfigW
  3694. #else
  3695. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3696. #define lineSetDevConfig lineSetDevConfigA
  3697. #endif
  3698. #endif
  3699.  
  3700. #endif
  3701.  
  3702. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3703. LONG
  3704. WINAPI
  3705. lineSetLineDevStatus(                                           // TAPI v2.0
  3706.     HLINE               hLine,
  3707.     DWORD               dwStatusToChange,
  3708.     DWORD               fStatus
  3709.     );
  3710. #endif
  3711.  
  3712. LONG
  3713. WINAPI
  3714. lineSetMediaControl(
  3715.     HLINE                       hLine,
  3716.     DWORD                       dwAddressID,
  3717.     HCALL                       hCall,
  3718.     DWORD                       dwSelect,
  3719.     LPLINEMEDIACONTROLDIGIT     const lpDigitList,
  3720.     DWORD                       dwDigitNumEntries,
  3721.     LPLINEMEDIACONTROLMEDIA     const lpMediaList,
  3722.     DWORD                       dwMediaNumEntries,
  3723.     LPLINEMEDIACONTROLTONE      const lpToneList,
  3724.     DWORD                       dwToneNumEntries,
  3725.     LPLINEMEDIACONTROLCALLSTATE const lpCallStateList, 
  3726.     DWORD                       dwCallStateNumEntries
  3727.     );
  3728.  
  3729. LONG
  3730. WINAPI
  3731. lineSetMediaMode(
  3732.     HCALL               hCall,
  3733.     DWORD               dwMediaModes
  3734.     );
  3735.  
  3736. LONG
  3737. WINAPI
  3738. lineSetNumRings(
  3739.     HLINE               hLine,
  3740.     DWORD               dwAddressID,
  3741.     DWORD               dwNumRings
  3742.     );
  3743.  
  3744. LONG
  3745. WINAPI
  3746. lineSetStatusMessages(
  3747.     HLINE               hLine,
  3748.     DWORD               dwLineStates,
  3749.     DWORD               dwAddressStates
  3750.     );
  3751.  
  3752. LONG
  3753. WINAPI
  3754. lineSetTerminal(
  3755.     HLINE               hLine,
  3756.     DWORD               dwAddressID,
  3757.     HCALL               hCall,
  3758.     DWORD               dwSelect,
  3759.     DWORD               dwTerminalModes,
  3760.     DWORD               dwTerminalID,
  3761.     DWORD               bEnable
  3762.     );
  3763.  
  3764. LONG
  3765. WINAPI
  3766. lineSetTollList(
  3767.     HLINEAPP            hLineApp,
  3768.     DWORD               dwDeviceID,
  3769.     LPCSTR              lpszAddressIn,
  3770.     DWORD               dwTollListOption
  3771.     );
  3772.  
  3773. #if WIN32
  3774. LONG
  3775. WINAPI
  3776. lineSetTollListA(
  3777.     HLINEAPP            hLineApp,
  3778.     DWORD               dwDeviceID,
  3779.     LPCSTR              lpszAddressIn,
  3780.     DWORD               dwTollListOption
  3781.     );
  3782.  
  3783. LONG
  3784. WINAPI
  3785. lineSetTollListW(
  3786.     HLINEAPP            hLineApp,
  3787.     DWORD               dwDeviceID,
  3788.     LPCWSTR             lpszAddressInW,
  3789.     DWORD               dwTollListOption
  3790.     );
  3791.  
  3792. #ifdef UNICODE
  3793. #define lineSetTollList lineSetTollListW
  3794. #else
  3795. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3796. #define lineSetTollList lineSetTollListA
  3797. #endif
  3798. #endif
  3799.  
  3800. #endif
  3801.  
  3802.  
  3803. LONG
  3804. WINAPI
  3805. lineSetupConference(
  3806.     HCALL               hCall,
  3807.     HLINE               hLine,
  3808.     LPHCALL             lphConfCall,
  3809.     LPHCALL             lphConsultCall,
  3810.     DWORD               dwNumParties,
  3811.     LPLINECALLPARAMS    const lpCallParams
  3812.     );
  3813.  
  3814. #if WIN32
  3815. LONG
  3816. WINAPI
  3817. lineSetupConferenceA(
  3818.     HCALL               hCall,
  3819.     HLINE               hLine,
  3820.     LPHCALL             lphConfCall,
  3821.     LPHCALL             lphConsultCall,
  3822.     DWORD               dwNumParties,
  3823.     LPLINECALLPARAMS    const lpCallParams
  3824.     );
  3825.  
  3826. LONG
  3827. WINAPI
  3828. lineSetupConferenceW(
  3829.     HCALL               hCall,
  3830.     HLINE               hLine,
  3831.     LPHCALL             lphConfCall,
  3832.     LPHCALL             lphConsultCall,
  3833.     DWORD               dwNumParties,
  3834.     LPLINECALLPARAMS    const lpCallParams
  3835.     );
  3836.  
  3837. #ifdef UNICODE
  3838. #define lineSetupConference lineSetupConferenceW
  3839. #else
  3840. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3841. #define lineSetupConference lineSetupConferenceA
  3842. #endif
  3843. #endif
  3844.  
  3845. #endif
  3846.  
  3847. LONG
  3848. WINAPI
  3849. lineSetupTransfer(
  3850.     HCALL               hCall,
  3851.     LPHCALL             lphConsultCall,
  3852.     LPLINECALLPARAMS    const lpCallParams
  3853.     );
  3854.  
  3855. #if WIN32
  3856. LONG
  3857. WINAPI
  3858. lineSetupTransferA(
  3859.     HCALL               hCall,
  3860.     LPHCALL             lphConsultCall,
  3861.     LPLINECALLPARAMS    const lpCallParams
  3862.     );
  3863.  
  3864. LONG
  3865. WINAPI
  3866. lineSetupTransferW(
  3867.     HCALL               hCall,
  3868.     LPHCALL             lphConsultCall,
  3869.     LPLINECALLPARAMS    const lpCallParams
  3870.     );
  3871.  
  3872. #ifdef UNICODE
  3873. #define lineSetupTransfer lineSetupTransferW
  3874. #else
  3875. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3876. #define lineSetupTransfer lineSetupTransferA
  3877. #endif
  3878. #endif
  3879.  
  3880. #endif
  3881.  
  3882. LONG
  3883. WINAPI
  3884. lineShutdown(
  3885.     HLINEAPP            hLineApp
  3886.     );
  3887.  
  3888. LONG
  3889. WINAPI
  3890. lineSwapHold(
  3891.     HCALL               hActiveCall,
  3892.     HCALL               hHeldCall
  3893.     );
  3894.  
  3895. LONG
  3896. WINAPI
  3897. lineTranslateAddress(
  3898.     HLINEAPP                hLineApp,
  3899.     DWORD                   dwDeviceID,
  3900.     DWORD                   dwAPIVersion,
  3901.     LPCSTR                  lpszAddressIn,
  3902.     DWORD                   dwCard,
  3903.     DWORD                   dwTranslateOptions,
  3904.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3905.     );
  3906.  
  3907. #if WIN32
  3908. LONG
  3909. WINAPI
  3910. lineTranslateAddressA(
  3911.     HLINEAPP                hLineApp,
  3912.     DWORD                   dwDeviceID,
  3913.     DWORD                   dwAPIVersion,
  3914.     LPCSTR                  lpszAddressIn,
  3915.     DWORD                   dwCard,
  3916.     DWORD                   dwTranslateOptions,
  3917.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3918.     );
  3919.  
  3920. LONG
  3921. WINAPI
  3922. lineTranslateAddressW(
  3923.     HLINEAPP                hLineApp,
  3924.     DWORD                   dwDeviceID,
  3925.     DWORD                   dwAPIVersion,
  3926.     LPCWSTR                 lpszAddressIn,
  3927.     DWORD                   dwCard,
  3928.     DWORD                   dwTranslateOptions,
  3929.     LPLINETRANSLATEOUTPUT   lpTranslateOutput
  3930.     );
  3931.  
  3932. #ifdef UNICODE
  3933. #define lineTranslateAddress lineTranslateAddressW
  3934. #else
  3935. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3936. #define lineTranslateAddressA lineTranslateAddressA
  3937. #endif
  3938. #endif
  3939.  
  3940. #endif
  3941.  
  3942. LONG
  3943. WINAPI
  3944. lineTranslateDialog(                                            // TAPI v1.4
  3945.     HLINEAPP            hLineApp,
  3946.     DWORD               dwDeviceID,
  3947.     DWORD               dwAPIVersion,
  3948.     HWND                hwndOwner,
  3949.     LPCSTR              lpszAddressIn
  3950.     );
  3951.  
  3952. #if WIN32
  3953. LONG
  3954. WINAPI
  3955. lineTranslateDialogA(                                            // TAPI v1.4
  3956.     HLINEAPP            hLineApp,
  3957.     DWORD               dwDeviceID,
  3958.     DWORD               dwAPIVersion,
  3959.     HWND                hwndOwner,
  3960.     LPCSTR              lpszAddressIn
  3961.     );
  3962.  
  3963. LONG
  3964. WINAPI
  3965. lineTranslateDialogW(
  3966.     HLINEAPP            hLineApp,
  3967.     DWORD               dwDeviceID,
  3968.     DWORD               dwAPIVersion,
  3969.     HWND                hwndOwner,
  3970.     LPCWSTR             lpszAddressIn
  3971.     );
  3972.  
  3973. #ifdef UNICODE
  3974. #define lineTranslateDialog lineTranslateDialogW
  3975. #else
  3976. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  3977. #define lineTranslateDialogA lineTranslateDialogA
  3978. #endif
  3979. #endif
  3980.  
  3981. #endif
  3982.  
  3983. LONG
  3984. WINAPI
  3985. lineUncompleteCall(
  3986.     HLINE               hLine,
  3987.     DWORD               dwCompletionID
  3988.     );
  3989.  
  3990. LONG
  3991. WINAPI
  3992. lineUnhold(
  3993.     HCALL               hCall
  3994.     );
  3995.  
  3996. LONG
  3997. WINAPI
  3998. lineUnpark(
  3999.     HLINE               hLine,
  4000.     DWORD               dwAddressID,
  4001.     LPHCALL             lphCall,
  4002.     LPCSTR              lpszDestAddress
  4003.     );
  4004.  
  4005. #if WIN32
  4006. LONG
  4007. WINAPI
  4008. lineUnparkA(
  4009.     HLINE               hLine,
  4010.     DWORD               dwAddressID,
  4011.     LPHCALL             lphCall,
  4012.     LPCSTR              lpszDestAddress
  4013.     );
  4014.  
  4015. LONG
  4016. WINAPI
  4017. lineUnparkW(
  4018.     HLINE               hLine,
  4019.     DWORD               dwAddressID,
  4020.     LPHCALL             lphCall,
  4021.     LPCWSTR             lpszDestAddress
  4022.     );
  4023.  
  4024. #ifdef UNICODE
  4025. #define lineUnpark lineUnparkW
  4026. #else
  4027. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4028. #define lineUnpark lineUnparkA
  4029. #endif
  4030. #endif
  4031.  
  4032. #endif
  4033.  
  4034.  
  4035.  
  4036. LONG
  4037. WINAPI
  4038. phoneClose(
  4039.     HPHONE              hPhone
  4040.     );
  4041.  
  4042. LONG
  4043. WINAPI
  4044. phoneConfigDialog(
  4045.     DWORD               dwDeviceID,
  4046.     HWND                hwndOwner,
  4047.     LPCSTR              lpszDeviceClass
  4048.     );
  4049.  
  4050. #if WIN32
  4051. LONG
  4052. WINAPI
  4053. phoneConfigDialogA(
  4054.     DWORD               dwDeviceID,
  4055.     HWND                hwndOwner,
  4056.     LPCSTR              lpszDeviceClass
  4057.     );
  4058.  
  4059. LONG
  4060. WINAPI
  4061. phoneConfigDialogW(
  4062.     DWORD               dwDeviceID,
  4063.     HWND                hwndOwner,
  4064.     LPCWSTR             lpszDeviceClass
  4065.     );
  4066.  
  4067. #ifdef UNICODE
  4068. #define phoneConfigDialog phoneConfigDialogW
  4069. #else
  4070. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4071. #define phoneConfigDialog phoneConfigDialogA
  4072. #endif
  4073. #endif
  4074.  
  4075. #endif
  4076.  
  4077. LONG
  4078. WINAPI
  4079. phoneDevSpecific(
  4080.     HPHONE              hPhone,
  4081.     LPVOID              lpParams,
  4082.     DWORD               dwSize
  4083.     );
  4084.  
  4085. LONG
  4086. WINAPI
  4087. phoneGetButtonInfo(
  4088.     HPHONE              hPhone,
  4089.     DWORD               dwButtonLampID,
  4090.     LPPHONEBUTTONINFO   lpButtonInfo
  4091.     );
  4092.  
  4093. #if WIN32
  4094. LONG
  4095. WINAPI
  4096. phoneGetButtonInfoA(
  4097.     HPHONE              hPhone,
  4098.     DWORD               dwButtonLampID,
  4099.     LPPHONEBUTTONINFO   lpButtonInfo
  4100.     );
  4101.  
  4102. LONG
  4103. WINAPI
  4104. phoneGetButtonInfoW(
  4105.     HPHONE              hPhone,
  4106.     DWORD               dwButtonLampID,
  4107.     LPPHONEBUTTONINFO   lpButtonInfo
  4108.     );
  4109.  
  4110. #ifdef UNICODE
  4111. #define phoneGetButtonInfo phoneGetButtonInfoW
  4112. #else
  4113. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4114. #define phoneGetButtonInfo phoneGetButtonInfoA
  4115. #endif
  4116. #endif
  4117.  
  4118. #endif
  4119.  
  4120. LONG
  4121. WINAPI
  4122. phoneGetData(
  4123.     HPHONE              hPhone,
  4124.     DWORD               dwDataID,
  4125.     LPVOID              lpData,
  4126.     DWORD               dwSize
  4127.     );
  4128.  
  4129. LONG
  4130. WINAPI
  4131. phoneGetDevCaps(
  4132.     HPHONEAPP           hPhoneApp,
  4133.     DWORD               dwDeviceID,
  4134.     DWORD               dwAPIVersion,
  4135.     DWORD               dwExtVersion,
  4136.     LPPHONECAPS         lpPhoneCaps
  4137.     );
  4138.  
  4139. #if WIN32
  4140. LONG
  4141. WINAPI
  4142. phoneGetDevCapsA(
  4143.     HPHONEAPP           hPhoneApp,
  4144.     DWORD               dwDeviceID,
  4145.     DWORD               dwAPIVersion,
  4146.     DWORD               dwExtVersion,
  4147.     LPPHONECAPS         lpPhoneCaps
  4148.     );
  4149.  
  4150. LONG
  4151. WINAPI
  4152. phoneGetDevCapsW(
  4153.     HPHONEAPP           hPhoneApp,
  4154.     DWORD               dwDeviceID,
  4155.     DWORD               dwAPIVersion,
  4156.     DWORD               dwExtVersion,
  4157.     LPPHONECAPS         lpPhoneCaps
  4158.     );
  4159.  
  4160. #ifdef UNICODE
  4161. #define phoneGetDevCaps phoneGetDevCapsW
  4162. #else
  4163. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4164. #define phoneGetDevCaps phoneGetDevCapsA
  4165. #endif
  4166. #endif
  4167.  
  4168. #endif
  4169.  
  4170. LONG
  4171. WINAPI
  4172. phoneGetDisplay(
  4173.     HPHONE              hPhone,
  4174.     LPVARSTRING         lpDisplay
  4175.     );
  4176.  
  4177. LONG
  4178. WINAPI
  4179. phoneGetGain(
  4180.     HPHONE              hPhone,
  4181.     DWORD               dwHookSwitchDev,
  4182.     LPDWORD             lpdwGain
  4183.     );
  4184.  
  4185. LONG
  4186. WINAPI
  4187. phoneGetHookSwitch(
  4188.     HPHONE              hPhone,
  4189.     LPDWORD             lpdwHookSwitchDevs
  4190.     );
  4191.  
  4192. LONG
  4193. WINAPI
  4194. phoneGetIcon(
  4195.     DWORD               dwDeviceID,
  4196.     LPCSTR              lpszDeviceClass,
  4197.     LPHICON             lphIcon
  4198.     );
  4199.  
  4200. #if WIN32
  4201. LONG
  4202. WINAPI
  4203. phoneGetIconA(
  4204.     DWORD               dwDeviceID,
  4205.     LPCSTR              lpszDeviceClass,
  4206.     LPHICON             lphIcon
  4207.     );
  4208.  
  4209. LONG
  4210. WINAPI
  4211. phoneGetIconW(
  4212.     DWORD               dwDeviceID,
  4213.     LPCWSTR             lpszDeviceClass,
  4214.     LPHICON             lphIcon
  4215.     );
  4216.  
  4217. #ifdef UNICODE
  4218. #define phoneGetIcon phoneGetIconW
  4219. #else
  4220. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4221. #define phoneGetIcon phoneGetIconA
  4222. #endif
  4223. #endif
  4224.  
  4225. #endif
  4226.  
  4227. LONG
  4228. WINAPI
  4229. phoneGetID(
  4230.     HPHONE              hPhone,
  4231.     LPVARSTRING         lpDeviceID,
  4232.     LPCSTR              lpszDeviceClass
  4233.     );
  4234.  
  4235. #if WIN32
  4236. LONG
  4237. WINAPI
  4238. phoneGetIDA(
  4239.     HPHONE              hPhone,
  4240.     LPVARSTRING         lpDeviceID,
  4241.     LPCSTR              lpszDeviceClass
  4242.     );
  4243.  
  4244. LONG
  4245. WINAPI
  4246. phoneGetIDW(
  4247.     HPHONE              hPhone,
  4248.     LPVARSTRING         lpDeviceID,
  4249.     LPCWSTR             lpszDeviceClass
  4250.     );
  4251.  
  4252. #ifdef UNICODE
  4253. #define phoneGetID phoneGetIDW
  4254. #else
  4255. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4256. #define phoneGetID phoneGetIDA
  4257. #endif
  4258. #endif
  4259.  
  4260. #endif
  4261.  
  4262. LONG
  4263. WINAPI
  4264. phoneGetLamp(
  4265.     HPHONE              hPhone,
  4266.     DWORD               dwButtonLampID,
  4267.     LPDWORD             lpdwLampMode
  4268.     );
  4269.  
  4270. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4271. LONG
  4272. WINAPI
  4273. phoneGetMessage(                                                // TAPI v2.0
  4274.     HPHONEAPP       hPhoneApp,
  4275.     LPPHONEMESSAGE  lpMessage,
  4276.     DWORD           dwTimeout
  4277.     );
  4278. #endif
  4279.  
  4280. LONG
  4281. WINAPI
  4282. phoneGetRing(
  4283.     HPHONE              hPhone,
  4284.     LPDWORD             lpdwRingMode,
  4285.     LPDWORD             lpdwVolume
  4286.     );
  4287.  
  4288. LONG
  4289. WINAPI
  4290. phoneGetStatus(
  4291.     HPHONE              hPhone,
  4292.     LPPHONESTATUS       lpPhoneStatus
  4293.     );
  4294.  
  4295. #if WIN32
  4296. LONG
  4297. WINAPI
  4298. phoneGetStatusA(
  4299.     HPHONE              hPhone,
  4300.     LPPHONESTATUS       lpPhoneStatus
  4301.     );
  4302.  
  4303. LONG
  4304. WINAPI
  4305. phoneGetStatusW(
  4306.     HPHONE              hPhone,
  4307.     LPPHONESTATUS       lpPhoneStatus
  4308.     );
  4309.  
  4310.  
  4311. #ifdef UNICODE
  4312. #define phoneGetStatus phoneGetStatusW
  4313. #else
  4314. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4315. #define phoneGetStatus phoneGetStatusA
  4316. #endif
  4317. #endif
  4318.  
  4319. #endif
  4320.  
  4321. LONG
  4322. WINAPI
  4323. phoneGetStatusMessages(
  4324.     HPHONE              hPhone,
  4325.     LPDWORD             lpdwPhoneStates,
  4326.     LPDWORD             lpdwButtonModes,
  4327.     LPDWORD             lpdwButtonStates
  4328.     );
  4329.  
  4330. LONG
  4331. WINAPI
  4332. phoneGetVolume(
  4333.     HPHONE              hPhone,
  4334.     DWORD               dwHookSwitchDev,
  4335.     LPDWORD             lpdwVolume
  4336.     );
  4337.  
  4338. LONG
  4339. WINAPI
  4340. phoneInitialize(
  4341.     LPHPHONEAPP         lphPhoneApp,
  4342.     HINSTANCE           hInstance,
  4343.     PHONECALLBACK       lpfnCallback,
  4344.     LPCSTR              lpszAppName,
  4345.     LPDWORD             lpdwNumDevs
  4346.     );
  4347.  
  4348.  
  4349. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4350. LONG
  4351. WINAPI
  4352. phoneInitializeExA(                                              // TAPI v2.0
  4353.     LPHPHONEAPP                 lphPhoneApp,
  4354.     HINSTANCE                   hInstance,
  4355.     PHONECALLBACK               lpfnCallback,
  4356.     LPCSTR                      lpszFriendlyAppName,
  4357.     LPDWORD                     lpdwNumDevs,
  4358.     LPDWORD                     lpdwAPIVersion,
  4359.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4360.     );
  4361.  
  4362. LONG
  4363. WINAPI
  4364. phoneInitializeExW(                                              // TAPI v2.0
  4365.     LPHPHONEAPP                 lphPhoneApp,
  4366.     HINSTANCE                   hInstance,
  4367.     PHONECALLBACK               lpfnCallback,
  4368.     LPCWSTR                     lpszFriendlyAppName,
  4369.     LPDWORD                     lpdwNumDevs,
  4370.     LPDWORD                     lpdwAPIVersion,
  4371.     LPPHONEINITIALIZEEXPARAMS   lpPhoneInitializeExParams
  4372.     );
  4373.  
  4374. #ifdef UNICODE
  4375. #define phoneInitializeEx phoneInitializeExW
  4376. #else
  4377. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4378. #define phoneInitializeEx phoneInitializeExA
  4379. #endif
  4380. #endif
  4381.  
  4382. #endif
  4383.  
  4384. LONG
  4385. WINAPI
  4386. phoneNegotiateAPIVersion(
  4387.     HPHONEAPP           hPhoneApp,
  4388.     DWORD               dwDeviceID,
  4389.     DWORD               dwAPILowVersion,
  4390.     DWORD               dwAPIHighVersion,
  4391.     LPDWORD             lpdwAPIVersion,
  4392.     LPPHONEEXTENSIONID  lpExtensionID
  4393.     );
  4394.  
  4395. LONG
  4396. WINAPI
  4397. phoneNegotiateExtVersion(
  4398.     HPHONEAPP           hPhoneApp,
  4399.     DWORD               dwDeviceID,
  4400.     DWORD               dwAPIVersion,
  4401.     DWORD               dwExtLowVersion,
  4402.     DWORD               dwExtHighVersion,
  4403.     LPDWORD             lpdwExtVersion
  4404.     );
  4405.  
  4406. LONG
  4407. WINAPI
  4408. phoneOpen(
  4409.     HPHONEAPP           hPhoneApp,
  4410.     DWORD               dwDeviceID,
  4411.     LPHPHONE            lphPhone,
  4412.     DWORD               dwAPIVersion,
  4413.     DWORD               dwExtVersion,
  4414.     DWORD               dwCallbackInstance,
  4415.     DWORD               dwPrivilege
  4416.     );
  4417.  
  4418. LONG
  4419. WINAPI
  4420. phoneSetButtonInfo(
  4421.     HPHONE              hPhone,
  4422.     DWORD               dwButtonLampID,
  4423.     LPPHONEBUTTONINFO   const lpButtonInfo
  4424.     );
  4425.  
  4426. #if WIN32
  4427. LONG
  4428. WINAPI
  4429. phoneSetButtonInfoA(
  4430.     HPHONE              hPhone,
  4431.     DWORD               dwButtonLampID,
  4432.     LPPHONEBUTTONINFO   const lpButtonInfo
  4433.     );
  4434.  
  4435. LONG
  4436. WINAPI
  4437. phoneSetButtonInfoW(
  4438.     HPHONE              hPhone,
  4439.     DWORD               dwButtonLampID,
  4440.     LPPHONEBUTTONINFO   const lpButtonInfo
  4441.     );
  4442.  
  4443. #ifdef UNICODE
  4444. #define phoneSetButtonInfo phoneSetButtonInfoW
  4445. #else
  4446. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4447. #define phoneSetButtonInfo phoneSetButtonInfoA
  4448. #endif
  4449. #endif
  4450.  
  4451. #endif
  4452.  
  4453. LONG
  4454. WINAPI
  4455. phoneSetData(
  4456.     HPHONE              hPhone,
  4457.     DWORD               dwDataID,
  4458.     LPVOID              const lpData,
  4459.     DWORD               dwSize
  4460.     );
  4461.  
  4462. LONG
  4463. WINAPI
  4464. phoneSetDisplay(
  4465.     HPHONE              hPhone,
  4466.     DWORD               dwRow,
  4467.     DWORD               dwColumn,
  4468.     LPCSTR              lpsDisplay,
  4469.     DWORD               dwSize
  4470.     );
  4471.  
  4472. LONG
  4473. WINAPI
  4474. phoneSetGain(
  4475.     HPHONE              hPhone,
  4476.     DWORD               dwHookSwitchDev,
  4477.     DWORD               dwGain
  4478.     );
  4479.  
  4480. LONG
  4481. WINAPI
  4482. phoneSetHookSwitch(
  4483.     HPHONE              hPhone,
  4484.     DWORD               dwHookSwitchDevs,
  4485.     DWORD               dwHookSwitchMode
  4486.     );
  4487.  
  4488. LONG
  4489. WINAPI
  4490. phoneSetLamp(
  4491.     HPHONE              hPhone,
  4492.     DWORD               dwButtonLampID,
  4493.     DWORD               dwLampMode
  4494.     );
  4495.  
  4496. LONG
  4497. WINAPI
  4498. phoneSetRing(
  4499.     HPHONE              hPhone,
  4500.     DWORD               dwRingMode,
  4501.     DWORD               dwVolume
  4502.     );
  4503.  
  4504. LONG
  4505. WINAPI
  4506. phoneSetStatusMessages(
  4507.     HPHONE              hPhone,
  4508.     DWORD               dwPhoneStates,
  4509.     DWORD               dwButtonModes,
  4510.     DWORD               dwButtonStates
  4511.     );
  4512.  
  4513. LONG
  4514. WINAPI
  4515. phoneSetVolume(
  4516.     HPHONE              hPhone,
  4517.     DWORD               dwHookSwitchDev,
  4518.     DWORD               dwVolume
  4519.     );
  4520.  
  4521. LONG
  4522. WINAPI
  4523. phoneShutdown(
  4524.     HPHONEAPP           hPhoneApp
  4525.     );
  4526.  
  4527.  
  4528.  
  4529. LONG
  4530. WINAPI
  4531. tapiGetLocationInfo(
  4532.     LPSTR               lpszCountryCode,
  4533.     LPSTR               lpszCityCode
  4534.     );
  4535.     
  4536. #if WIN32
  4537. LONG
  4538. WINAPI
  4539. tapiGetLocationInfoA(
  4540.     LPSTR               lpszCountryCode,
  4541.     LPSTR               lpszCityCode
  4542.     );
  4543.     
  4544. LONG
  4545. WINAPI
  4546. tapiGetLocationInfoW(
  4547.     LPWSTR               lpszCountryCodeW,
  4548.     LPWSTR               lpszCityCodeW
  4549.     );
  4550.  
  4551. #ifdef UNICODE
  4552. #define tapiGetLocationInfo tapiGetLocationInfoW
  4553. #else
  4554. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4555. #define tapiGetLocationInfo tapiGetLocationInfoA
  4556. #endif
  4557. #endif
  4558.  
  4559. #endif
  4560.     
  4561.  
  4562. LONG
  4563. WINAPI
  4564. tapiRequestDrop(
  4565.     HWND                hwnd,
  4566.     WPARAM              wRequestID
  4567.     );
  4568.  
  4569. LONG
  4570. WINAPI
  4571. tapiRequestMakeCall(
  4572.     LPCSTR              lpszDestAddress,
  4573.     LPCSTR              lpszAppName,
  4574.     LPCSTR              lpszCalledParty,
  4575.     LPCSTR              lpszComment
  4576.     );
  4577.  
  4578. #if WIN32
  4579. LONG
  4580. WINAPI
  4581. tapiRequestMakeCallA(
  4582.     LPCSTR              lpszDestAddress,
  4583.     LPCSTR              lpszAppName,
  4584.     LPCSTR              lpszCalledParty,
  4585.     LPCSTR              lpszComment
  4586.     );
  4587.  
  4588. LONG
  4589. WINAPI
  4590. tapiRequestMakeCallW(
  4591.     LPCWSTR              lpszDestAddress,
  4592.     LPCWSTR              lpszAppName,
  4593.     LPCWSTR              lpszCalledParty,
  4594.     LPCWSTR              lpszComment
  4595.     );
  4596.  
  4597. #ifdef UNICODE
  4598. #define tapiRequestMakeCall tapiRequestMakeCallW
  4599. #else
  4600. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4601. #define tapiRequestMakeCall tapiRequestMakeCallA
  4602. #endif
  4603. #endif
  4604.  
  4605. #endif
  4606.     
  4607. LONG
  4608. WINAPI
  4609. tapiRequestMediaCall(
  4610.     HWND                hwnd,
  4611.     WPARAM              wRequestID,
  4612.     LPCSTR              lpszDeviceClass,
  4613.     LPCSTR              lpDeviceID,
  4614.     DWORD               dwSize,
  4615.     DWORD               dwSecure,
  4616.     LPCSTR              lpszDestAddress,
  4617.     LPCSTR              lpszAppName,
  4618.     LPCSTR              lpszCalledParty,
  4619.     LPCSTR              lpszComment
  4620.     );
  4621.  
  4622. #if WIN32
  4623. LONG
  4624. WINAPI
  4625. tapiRequestMediaCallA(
  4626.     HWND                hwnd,
  4627.     WPARAM              wRequestID,
  4628.     LPCSTR              lpszDeviceClass,
  4629.     LPCSTR              lpDeviceID,
  4630.     DWORD               dwSize,
  4631.     DWORD               dwSecure,
  4632.     LPCSTR              lpszDestAddress,
  4633.     LPCSTR              lpszAppName,
  4634.     LPCSTR              lpszCalledParty,
  4635.     LPCSTR              lpszComment
  4636.     );
  4637.  
  4638. LONG
  4639. WINAPI
  4640. tapiRequestMediaCallW(
  4641.     HWND                hwnd,
  4642.     WPARAM              wRequestID,
  4643.     LPCWSTR             lpszDeviceClass,
  4644.     LPCWSTR             lpDeviceID,
  4645.     DWORD               dwSize,
  4646.     DWORD               dwSecure,
  4647.     LPCWSTR             lpszDestAddress,
  4648.     LPCWSTR             lpszAppName,
  4649.     LPCWSTR             lpszCalledParty,
  4650.     LPCWSTR             lpszComment
  4651.     );
  4652.  
  4653. #ifdef UNICODE
  4654. #define tapiRequestMediaCall tapiRequestMediaCallW
  4655. #else
  4656. #if (TAPI_CURRENT_VERSION >= 0x00020000)
  4657. #define tapiRequestMediaCall tapiRequestMediaCallA
  4658. #endif
  4659. #endif
  4660.  
  4661. #endif
  4662.     
  4663. /*
  4664.  
  4665. TAPIERROR_FORMATMESSAGE - macro to convert a TAPI error constant
  4666.     into a constant that FormatMessage will accept
  4667.     
  4668.         TAPIERR : Negative numbers and 0
  4669.             Map to : strip off high WORD
  4670.             Example: 0xFFFFFFFF (-1) becomes 0x0000FFFF
  4671.         LINEERR : Start at 0x80000000
  4672.             Map to : strip off 0x80000000 and add 0xE000
  4673.             Example: 0x80000004 becomes 0x0000E004
  4674.         PHONEERR: Start at 0x90000000
  4675.             Map to : strip off 0x90000000 and add 0xF000
  4676.             Example: 0x9000000A becomes 0x0000F00A
  4677.  
  4678.         pseudocode:
  4679.         
  4680.         if (__ErrCode__ is a TAPIERR)
  4681.             strip off high word
  4682.  
  4683.             else if (__ErrCode__ is a PHONEERR)
  4684.                 strip off 0x90000000
  4685.                 add 0xE000
  4686.  
  4687.                 else
  4688.                     strip off 0x80000000
  4689.                     add 0xF000
  4690.  
  4691. */
  4692.  
  4693. #define TAPIERROR_FORMATMESSAGE(__ErrCode__)                                                   \
  4694.                                                                                                \
  4695.                     ( ( (__ErrCode__) > 0xFFFF0000 ) ?                                         \
  4696.                                                                                                \
  4697.                             ( (__ErrCode__) & 0x0000FFFF ) :                                   \
  4698.                                                                                                \
  4699.                             ( ( (__ErrCode__) & 0x10000000 ) ?                                 \
  4700.                                                                                                \
  4701.                               ( (__ErrCode__) - 0x90000000 + 0xF000 ) :                        \
  4702.                                                                                                \
  4703.                               ( (__ErrCode__) - 0x80000000 + 0xE000 ) ) )
  4704.  
  4705.  
  4706.  
  4707. #ifdef __cplusplus
  4708. }                       /* End of extern "C" { */
  4709. #endif  /* __cplusplus */
  4710.  
  4711. #pragma pack()
  4712.  
  4713. #endif // TAPI_H
  4714.